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

Failure in format on __rec_upd_select

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • 5
    • Storage - Ra 2020-06-01, Storage - Ra 2020-10-19, Storage - Ra 2020-11-02

      While attempting to reproduce WT-6213, I hit this quite a few times:

      (lldb) bt
      * thread #1, name = 't', stop reason = signal SIGABRT
        * frame #0: 0x00007f237d4c2e97 libc.so.6`__GI_raise(sig=2) at raise.c:51
          frame #1: 0x00007f237d4c4801 libc.so.6`__GI_abort at abort.c:79
          frame #2: 0x00000000004b5a7f t`__wt_abort(session=0x0000000001cb7ac0) at os_abort.c:30
          frame #3: 0x000000000065eb10 t`__wt_rec_upd_select(session=0x0000000001cb7ac0, r=0x00007f2361d59d30, ins=0x0000000000000000, ripcip=0x00007f2358ec0380, vpack=0x00007f23790753b8, upd_select=0x00007f23790752f0) at rec_visibility.c:320
          frame #4: 0x00000000006580a9 t`__wt_rec_row_leaf(session=0x0000000001cb7ac0, r=0x00007f2361d59d30, pageref=0x00007f23557df410, salvage=0x0000000000000000) at rec_row.c:756
          frame #5: 0x00000000004d2b0d t`__reconcile(session=0x0000000001cb7ac0, ref=0x00007f23557df410, salvage=0x0000000000000000, flags=140, page_lockedp=0x00007f23790755a6) at rec_write.c:182
          frame #6: 0x00000000004d2435 t`__wt_reconcile(session=0x0000000001cb7ac0, ref=0x00007f23557df410, salvage=0x0000000000000000, flags=140) at rec_write.c:89
          frame #7: 0x0000000000482632 t`__evict_review(session=0x0000000001cb7ac0, ref=0x00007f23557df410, evict_flags=0, inmem_splitp=0x00007f23790756a0) at evict_page.c:667
          frame #8: 0x000000000048170e t`__wt_evict(session=0x0000000001cb7ac0, ref=0x00007f23557df410, previous_state='\x03', flags=0) at evict_page.c:186
          frame #9: 0x0000000000478dce t`__evict_page(session=0x0000000001cb7ac0, is_server=false) at evict_lru.c:2262
          frame #10: 0x00000000004782d5 t`__wt_cache_eviction_worker(session=0x0000000001cb7ac0, busy=true, readonly=false, pct_full=100.00111050902143) at evict_lru.c:2349
          frame #11: 0x00000000005a2ad8 t`__wt_cache_eviction_check(session=0x0000000001cb7ac0, busy=true, readonly=false, didworkp=0x0000000000000000) at cache.i:427
          frame #12: 0x00000000005a2294 t`__wt_page_in_func(session=0x0000000001cb7ac0, ref=0x00007f23545d2320, flags=3236, func="", line=459) at bt_read.c:262
          frame #13: 0x00000000005d89b8 t`__wt_page_swap_func(session=0x0000000001cb7ac0, held=0x0000000000000000, want=0x00007f23545d2320, flags=3236, func="", line=459) at btree.i:1649
          frame #14: 0x00000000005d7d45 t`__tree_walk_internal(session=0x0000000001cb7ac0, refp=0x00007f23617def40, walkcntp=0x0000000000000000, skip_func=0x0000000000000000, func_cookie=0x0000000000000000, flags=2180) at bt_walk.c:458
          frame #15: 0x00000000005d7723 t`__wt_tree_walk(session=0x0000000001cb7ac0, refp=0x00007f23617def40, flags=2176) at bt_walk.c:527
          frame #16: 0x000000000056d94d t`__wt_btcur_next(cbt=0x00007f23617dedd0, truncating=false) at bt_curnext.c:701
          frame #17: 0x000000000045d7d0 t`__curfile_next(cursor=0x00007f23617dedd0) at cur_file.c:93
          frame #18: 0x000000000040e1a2 t`read_op(cursor=0x00007f23617dedd0, op=NEXT, exactp=0x0000000000000000) at format.i:46
          frame #19: 0x0000000000410e3c t`nextprev(tinfo=0x000000000227ba70, cursor=0x00007f23617dedd0, next=true) at ops.c:1176
          frame #20: 0x000000000040d48d t`ops(arg=0x000000000227ba70) at ops.c:934
          frame #21: 0x00007f237d87c6db libpthread.so.0`start_thread + 219
          frame #22: 0x00007f237d5a588f libc.so.6`__GI___clone at clone.S:95
      (lldb) f 3
      frame #3: 0x000000000065eb10 t`__wt_rec_upd_select(session=0x0000000001cb7ac0, r=0x00007f2361d59d30, ins=0x0000000000000000, ripcip=0x00007f2358ec0380, vpack=0x00007f23790753b8, upd_select=0x00007f23790752f0) at rec_visibility.c:320
         317 	        /* Ignore prepared updates if it is checkpoint. */
         318 	        if (upd->prepare_state == WT_PREPARE_LOCKED ||
         319 	          upd->prepare_state == WT_PREPARE_INPROGRESS) {
      -> 320 	            WT_ASSERT(session, upd_select->upd == NULL || upd_select->upd->txnid == upd->txnid);
         321 	            if (F_ISSET(r, WT_REC_CHECKPOINT)) {
         322 	                has_newer_updates = true;
         323 	                if (upd->start_ts > max_ts)
      (lldb) p upd_select->upd
      (WT_UPDATE *) $0 = 0x00007f2359123450
      (lldb) p upd_select->upd->txnid
      (uint64_t) $1 = 655023
      (lldb) p upd->txnid
      (uint64_t) $2 = 647257
      

            Assignee:
            haseeb.bokhari@mongodb.com Haseeb Bokhari (Inactive)
            Reporter:
            alex.cameron@mongodb.com Alex Cameron (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: