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