-
Type:
Bug
-
Resolution: Done
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
None
-
None
We use the multiblock disk image to flag the existence of the saved-update list, which isn't correct, in __split_multi_inmem, we clear the disk image reference when transferring ownership of it to a split page, and if we ever reconcile that page again, we'll drop core trying to free non-existent disk blocks.
Here's the core:
(gdb) where
#0 __wt_vunpack_uint (pp=0x7fffdeff5a90, maxlen=0, xp=0x7fffdeff5a30)
at intpack.i:261
#1 0x000000000058ed12 in __block_buffer_to_addr (allocsize=512,
pp=0x7fffdeff5a90, offsetp=0x7fffdeff5ad8, sizep=0x7fffdeff5ad0,
cksump=0x7fffdeff5ad4) at src/block/block_addr.c:22
#2 0x000000000058eccb in __wt_block_buffer_to_addr (block=0x8034de000, p=0x0,
offsetp=0x7fffdeff5ad8, sizep=0x7fffdeff5ad0, cksump=0x7fffdeff5ad4)
at src/block/block_addr.c:83
#3 0x0000000000594e96 in __wt_block_free (session=0x803544d00,
block=0x8034de000, addr=0x0, addr_size=0) at src/block/block_ext.c:596
#4 0x000000000056ce74 in __bm_free (bm=0x8034d8280, session=0x803544d00,
addr=0x0, addr_size=0) at src/block/block_mgr.c:275
#5 0x000000000047c33b in __wt_btree_block_free (session=0x803544d00,
addr=0x0, addr_size=0) at btree.i:54
#6 0x000000000047c4d3 in __rec_split_discard (session=0x803544d00,
page=0x804f97800) at src/reconcile/rec_write.c:5466
#7 0x0000000000477b89 in __rec_write_wrapup (session=0x803544d00,
r=0x804448300, page=0x804f97800) at src/reconcile/rec_write.c:5580
#8 0x00000000004729f8 in __wt_reconcile (session=0x803544d00,
ref=0x80e425250, salvage=0x0, flags=11) at src/reconcile/rec_write.c:421
(gdb) frame 6
#6 0x000000000047c4d3 in __rec_split_discard (session=0x803544d00,
page=0x804f97800) at src/reconcile/rec_write.c:5466
5466 WT_RET(__wt_btree_block_free(session,
(gdb) p *multi
$8 = {
key = {
recno = 10008,
ikey = 0x2718
},
supd = 0x80f9f6000,
supd_entries = 713,
disk_image = 0x0,
addr = {
addr = 0x0,
size = 0 '\0',
type = 0 '\0',
reuse = 0 '\0'
},
size = 0,
cksum = 0
}
Here's the CONFIG:
############################################ abort=0 auto_throttle=1 backups=0 bitcnt=7 bloom=1 bloom_bit_count=37 bloom_hash_count=6 bloom_oldest=0 cache=83 checkpoints=0 checksum=uncompressed chunk_size=5 compaction=0 compression=none data_extend=0 data_source=file delete_pct=12 dictionary=1 direct_io=0 encryption=rotn-7 evict_max=5 file_type=variable-length column-store firstfit=0 huffman_key=1 huffman_value=0 in_memory=1 insert_pct=28 internal_key_truncation=1 internal_page_max=14 isolation=read-uncommitted key_gap=11 key_max=32 key_min=12 leaf_page_max=17 leak_memory=0 logging=0 logging_archive=1 logging_compression=none logging_prealloc=0 long_running_txn=0 lsm_worker_threads=3 merge_max=14 mmap=1 ops=1000000 prefix_compression=1 prefix_compression_min=2 repeat_data_pct=4 reverse=0 rows=10000 runs=1000 rebalance=0 salvage=0 split_pct=53 statistics=0 statistics_server=0 threads=19 timer=20 transaction-frequency=46 value_max=80 value_min=10 verify=0 wiredtiger_config= write_pct=62 ############################################