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

Fix the assert fire because onpage out of order update is not popped from the stack

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.1, 4.4.7, 5.0.0-rc0, 5.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • 3
    • Storage - Ra 2021-05-03, Storage - Ra 2021-05-17

      There are many failures across MongoDB that are failing on the following assert in __wt_hs_insert_updates:

      WT_ASSERT(session, out_of_order_ts_updates.size == 0); 

      This assert was added in WT-7229, and the first BFG occurred on the WT drop that included this ticket's most recent commit.

      The pretty-printed stack trace:

      (gdb) bt
      #0  0x00007f56787e293f in raise () from /lib64/libc.so.6
      #1  0x00007f56787ccc95 in abort () from /lib64/libc.so.6
      #2  0x00007f566e8be39f in __wt_abort (session=session@entry=0x7f5667bbcee0) at src/third_party/wiredtiger/src/os_common/os_abort.c:30
      #3  0x00007f566e8b747d in __wt_hs_insert_updates (session=session@entry=0x7f5667bbcee0, page=0x7f566c6c9820, multi=multi@entry=0x7f563de61a20, cache_write_hs=cache_write_hs@entry=0x7f563f2f0930) at src/third_party/wiredtiger/src/history/hs_rec.c:359
      #4  0x00007f566ea3eff3 in __rec_hs_wrapup (r=0x7f563f2f0420, session=0x7f5667bbcee0) at src/third_party/wiredtiger/src/reconcile/rec_write.c:2294
      #5  __rec_write_wrapup (session=0x7f5667bbcee0, r=0x7f563f2f0420, page=0x7f566c6c9820) at src/third_party/wiredtiger/src/reconcile/rec_write.c:2120
      #6  0x00007f566ea40801 in __reconcile (page_lockedp=<synthetic pointer>, flags=36, salvage=0x0, ref=0x7f564037d1e0, session=0x7f5667bbcee0) at src/third_party/wiredtiger/src/reconcile/rec_write.c:213
      #7  __wt_reconcile (session=session@entry=0x7f5667bbcee0, ref=0x7f564037d1e0, salvage=salvage@entry=0x0, flags=flags@entry=36) at src/third_party/wiredtiger/src/reconcile/rec_write.c:99
      #8  0x00007f566e93c1b2 in __wt_sync_file (session=session@entry=0x7f5667bbcee0, syncop=syncop@entry=WT_SYNC_CHECKPOINT) at src/third_party/wiredtiger/src/btree/bt_sync.c:642
      #9  0x00007f566ea946ec in __checkpoint_tree (session=0x7f5667bbcee0, is_checkpoint=<optimized out>, cfg=<optimized out>) at src/third_party/wiredtiger/src/txn/txn_ckpt.c:1728
      #10 0x00007f566ea95647 in __checkpoint_tree_helper (cfg=0x7f565e099910, session=0x7f5667bbcee0) at src/third_party/wiredtiger/src/txn/txn_ckpt.c:1836
      #11 __checkpoint_apply_to_dhandles (op=<optimized out>, cfg=0x7f565e099910, session=0x7f5667bbcee0) at src/third_party/wiredtiger/src/txn/txn_ckpt.c:197
      #12 __txn_checkpoint (cfg=<optimized out>, session=0x7f5667bbcee0) at src/third_party/wiredtiger/src/txn/txn_ckpt.c:880
      #13 __txn_checkpoint_wrapper (session=0x7f5667bbcee0, cfg=<optimized out>) at src/third_party/wiredtiger/src/txn/txn_ckpt.c:1109
      #14 0x00007f566ea96d96 in __wt_txn_checkpoint (session=session@entry=0x7f5667bbcee0, cfg=cfg@entry=0x7f565e099910, waiting=waiting@entry=true) at src/third_party/wiredtiger/src/txn/txn_ckpt.c:1163
      #15 0x00007f566e8c7a35 in __session_checkpoint (wt_session=0x7f5667bbcee0, config=0x7f5671e2d7a8 "use_timestamp=true") at src/third_party/wiredtiger/src/session/session_api.c:1890
      #16 0x00007f5671de7a14 in mongo::WiredTigerKVEngine::checkpoint (this=0x7f566c51b820) at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp:1849 

      The value of out_of_order_ts_updates:

      (gdb) p out_of_order_ts_updates
      $22 = {
        session = 0x7f5667bbcee0,
        list = {0x7f56402c2100, 0x0 <repeats 19 times>},
        listp = 0x7f565e098d38,
        allocated_bytes = 0,
        size = 1
      } 

            Assignee:
            chenhao.qu@mongodb.com Chenhao Qu
            Reporter:
            tammy.bailey@mongodb.com Tammy Bailey (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: