Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-2577

core dump discarding non-existent addresses

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • WT2.9.0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      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
      ############################################
      

            Assignee:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Reporter:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: