-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: 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 ############################################