When debugging WT-4324, I recently added a call to wt_verbose_dump_txn to dump the global txn information and the txns in each session. After doing so, many runs of the test/checkpoint test started dumping core with seg faults, assertion failures, etc.
The most common stack looks like this:
#0 0x00000000004d9239 in __wt_bt_read (session=0x7f3ba7762550, buf=0x7f3ba5b42510, addr=0x7f3b947d7cc0 "\200\201\344\030\332", <incomplete sequence \307>, addr_size=7) at ../src/btree/bt_io.c:54 #1 0x00000000004e6aee in __page_read (session=0x7f3ba7762550, ref=0xc5e100, flags=1032) at ../src/btree/bt_read.c:496 #2 0x00000000004e745d in __wt_page_in_func (session=0x7f3ba7762550, ref=0xc5e100, flags=1032, func=0x5da610 <__func__.33775> "__wt_row_search", line=453) at ../src/btree/bt_read.c:672 #3 0x000000000051a773 in __wt_page_swap_func (session=0x7f3ba7762550, held=0xc54d48, want=0xc5e100, flags=1024, func=0x5da610 <__func__.33775> "__wt_row_search", line=453) at ../src/include/btree.i:1702 #4 0x000000000051bdc1 in __wt_row_search (session=0x7f3ba7762550, srch_key=0xc84550, leaf=0x0, cbt=0xc84450, insert=true, restore=false) at ../src/btree/row_srch.c:452 #5 0x00000000004ca96e in __cursor_row_search (session=0x7f3ba7762550, cbt=0xc84450, leaf=0x0, insert=true) at ../src/btree/bt_cursor.c:397 (gdb) p dsk $1 = (const WT_PAGE_HEADER *) 0x0
I will attach the tiny diff that causes the problem and a script to reproduce it. I have been running on kodkod.