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

test/format segfault

    • Type: Icon: Task Task
    • Resolution: Done
    • WT2.2
    • Affects Version/s: None
    • Component/s: None
    • Labels:

      While all of the recent test/format failures are related to the recent eviction change, wiredtiger-test-format-stress 3547 was different than the assertion failure. Here's the stack:

      (gdb) bt
      #0  0x00000000004696b2 in __wt_cell_type (cell=0x0)
          at ../src/include/cell.i:470
      WT-1  0x0000000000469850 in __wt_cell_unpack_safe (page=0x0, cell=0x0, 
          unpack=0x7fe5ebcb76b0, end=0x0) at ../src/include/cell.i:572
      WT-2  0x0000000000469c79 in __wt_cell_unpack (cell=0x0, unpack=0x7fe5ebcb76b0)
          at ../src/include/cell.i:714
      WT-3  0x000000000046eb88 in __rec_col_merge (session=0xd65510, r=0x7fe59c04d7b0, 
          page=0x7fe5a4038e40) at ../src/btree/rec_write.c:2381
      WT-4  0x000000000046eb24 in __rec_col_merge (session=0xd65510, r=0x7fe59c04d7b0, 
          page=0x7fe54803dfe0) at ../src/btree/rec_write.c:2364
      WT-5  0x000000000046e909 in __rec_col_int (session=0xd65510, r=0x7fe59c04d7b0, 
          page=0x7fe54803dfe0) at ../src/btree/rec_write.c:2307
      WT-6  0x000000000046af9d in __wt_rec_write (session=0xd65510, 
          page=0x7fe54803dfe0, salvage=0x0, flags=0) at ../src/btree/rec_write.c:356
      WT-7  0x000000000044ff0d in __wt_sync_file (session=0xd65510, syncop=8)
          at ../src/btree/bt_evict.c:649
      WT-8  0x000000000045fb68 in __wt_bt_cache_op (session=0xd65510, 
          ckptbase=0x7fe59c061550, op=8) at ../src/btree/bt_sync.c:53
      WT-9  0x0000000000449ad7 in __checkpoint_worker (session=0xd65510, 
          cfg=0x7fe5ebcb7cf0, is_checkpoint=1) at ../src/txn/txn_ckpt.c:750
      WT-10 0x0000000000449ce1 in __wt_checkpoint (session=0xd65510, 
          cfg=0x7fe5ebcb7cf0) at ../src/txn/txn_ckpt.c:802
      WT-11 0x0000000000497c6e in __wt_meta_btree_apply (session=0xd65510, 
          func=0x449c79 <__wt_checkpoint>, cfg=0x7fe5ebcb7cf0)
          at ../src/meta/meta_apply.c:45
      WT-12 0x0000000000448838 in __checkpoint_apply (session=0xd65510, 
          cfg=0x7fe5ebcb7cf0, op=0x449c79 <__wt_checkpoint>, fullp=0x0)
          at ../src/txn/txn_ckpt.c:129
      WT-13 0x0000000000448b1e in __wt_txn_checkpoint (session=0xd65510, 
          cfg=0x7fe5ebcb7cf0) at ../src/txn/txn_ckpt.c:243
      WT-14 0x000000000043fe2d in __session_checkpoint (wt_session=0xd65510, 
          config=0x7fe5ebcb7d80 "name=thread-10") at ../src/session/session_api.c:716
      WT-15 0x000000000040fb9c in ops (arg=0xd83250) at ../../../test/format/ops.c:272
      WT-16 0x0000003789207851 in start_thread () from /lib64/libpthread.so.0
      WT-17 0x0000003788ae767d in clone () from /lib64/libc.so.6

      Clearly the crash is because cell is NULL. That's because the page is empty back in frame 3.

      (gdb) frame 3
      WT-3  0x000000000046eb88 in __rec_col_merge (session=0xd65510, r=0x7fe59c04d7b0, 
          page=0x7fe5a4038e40) at ../src/btree/rec_write.c:2381
      2381				__wt_cell_unpack(ref->addr, unpack);
      (gdb) p *ref
      $2 = {page = 0x0, addr = 0x0, key = {recno = 0, ikey = 0x0, pkey = 0}, 
        txnid = 0, state = WT_REF_DISK, unused = 0}
      (gdb) p *page
      $3 = {parent = 0x7fe5a40229e0, ref = 0x7fe5a4000078, u = {intl = {recno = 0, 
            t = 0x0}, row = {d = 0x0, ins = 0x0, upd = 0xabababababababab}, 
          col_fix = {recno = 0, bitf = 0x0}, col_var = {recno = 0, d = 0x0, 
            repeats = 0xabababababababab, nrepeats = 2880154539}}, 
        dsk = 0xabababababababab, modify = 0xabababababababab, 
        read_gen = 12370169555311111083, memory_footprint = 12370169555311111083, 
        entries = 2880154539, type = 171 '\253', flags_atomic = 171 '\253'}

            michael.cahill@mongodb.com Michael Cahill (Inactive)
            sue.loverso@mongodb.com Susan LoVerso
            0 Vote for this issue
            1 Start watching this issue