Details
Description
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.