Michael, I was debugging something and found a code path I think is wrong: *wt_conn_btree_close() asserts WT_SESSION_SCHEMA_LOCKED, but the error path in *wt_conn_btree_open calls it and __wt_conn_btree_open doesn't necessarily hold that lock. Here's a stack:
WT-6 0x0000000801eae9bc in __wt_conn_btree_close (session=0x80313a1e8, locked=1) at ../src/conn/conn_btree.c:339 WT-7 0x0000000801eae617 in __wt_conn_btree_open (session=0x80313a1e8, config=0x803165600 "allocation_size=512B,block_compressor=,checkpoint=,checksum=true,collator=,columns=(),huffman_key=,huffman_value=,internal_item_max=0,internal_key_truncate=true,internal_page_max=2KB,key_format=S,key_"..., cfg=0x7fffffffc2b0, flags=4) at ../src/conn/conn_btree.c:227 WT-8 0x0000000801eae777 in __wt_conn_btree_get (session=0x80313a1e8, name=0x801edc790 "file:WiredTiger.wt", ckpt=0x0, cfg=0x7fffffffc2b0, flags=4) at ../src/conn/conn_btree.c:271 WT-9 0x0000000801ec3345 in __create_file (session=0x80313a1e8, uri=0x801edc790 "file:WiredTiger.wt", exclusive=0, config=0x0) at ../src/schema/schema_create.c:77 WT-10 0x0000000801ec4575 in __wt_schema_create (session=0x80313a1e8, name=0x801edc790 "file:WiredTiger.wt", config=0x0) at ../src/schema/schema_create.c:403 WT-11 0x0000000801eade55 in wiredtiger_open (home=0x800ecf504 ".", event_handler=0x0, config=0x8030f957c "create,error_prefix=\"test_checkpoint01.test_checkpoint.test_checkpoint(file): \"", wt_connp=0x7fffffffc520) at ../src/conn/conn_api.c:918 WT-12 0x0000000801d5dcbf in _wrap_wiredtiger_open (self=Variable "self" is not available. )
There may be a related problem where *wt_conn_btree_open also calls *wt_conn_btree_sync_and_close, that has a similar assertion, but maybe that path does have the right locks, I didn't see that one fire.
- related to
-
WT-6 Complex schema example
- Closed
-
WT-7 Do we need the handle->err/errx methods?
- Closed
-
WT-8 Do we need table load, bulk-load and/or dump methods?
- Closed
-
WT-9 Does adding schema need to be transactional?
- Closed
-
WT-10 Basic "getting started" tutorial
- Closed
-
WT-11 placeholder #11
- Closed
-
WT-12 Write more examples
- Closed