Fix checkpoint_id assertion for disagg delta reconciliation

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Engines, Storage Engines - Persistence
    • SE Persistence backlog
    • None

      Running :

      python3 ../test/suite/run.py --hook disagg -v 2 checkpoint_snapshot03 -s 2 

      (-s 2 is the scenario with row store), after about 6 minutes on my machine, I get an assert:

      [1752172542:274290][5607:0xfffff7ff54c0], test_checkpoint_snapshot03.test_checkpoint_snapshot03.test_checkpoint_snapshot(row_string), file:test_checkpoint_snapshot03.wt_stable, WT_SESSION.checkpoint: [WT_VERB_DEFAULT][ERROR]: __rec_write_delta, 2488: WiredTiger assertion failed: 'checkpoint_id > multi->block_meta.checkpoint_id'. Expression returned false 

      Here's the traceback.

      #0  0x0000fffff7d6f200 in ?? () from /lib/aarch64-linux-gnu/libc.so.6
      #1  0x0000fffff7d2a67c in raise () from /lib/aarch64-linux-gnu/libc.so.6
      #2  0x0000fffff7d17130 in abort () from /lib/aarch64-linux-gnu/libc.so.6
      #3  0x0000fffff7302fd8 in __wt_abort (session=0xaaaaad3ac460) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/os_common/os_abort.c:31
      #4  0x0000fffff73770ec in __rec_write_delta (session=0xaaaaad3ac460, r=0xaaaab460bbc0, chunk=0xaaaab460bc28, addr=0xffffffffab58 "\340\\\255\253\252\252", addr_sizep=0xffffffffab08, compressed_sizep=0xffffffffab10)
          at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/reconcile/rec_write.c:2488
      #5  0x0000fffff73793f4 in __rec_split_write (session=0xaaaaad3ac460, r=0xaaaab460bbc0, chunk=0xaaaab460bc28, last_block=true) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/reconcile/rec_write.c:2851
      #6  0x0000fffff7375228 in __wti_rec_split_finish (session=0xaaaaad3ac460, r=0xaaaab460bbc0) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/reconcile/rec_write.c:1872
      #7  0x0000fffff73565e4 in __wti_rec_row_int (session=0xaaaaad3ac460, r=0xaaaab460bbc0, page=0xaaaaab223a70) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/reconcile/rec_row.c:596
      #8  0x0000fffff737020c in __reconcile (session=0xaaaaad3ac460, ref=0xaaaaab3767d0, salvage=0x0, flags=132, page_lockedp=0xffffffffbc40) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/reconcile/rec_write.c:297
      #9  0x0000fffff736f358 in __wt_reconcile (session=0xaaaaad3ac460, ref=0xaaaaab3767d0, salvage=0x0, flags=132) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/reconcile/rec_write.c:124
      #10 0x0000fffff7155aa0 in __wt_sync_file (session=0xaaaaad3ac460, syncop=WT_SYNC_CHECKPOINT) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/btree/bt_sync.c:363
      #11 0x0000fffff71ad690 in __checkpoint_tree (session=0xaaaaad3ac460, is_checkpoint=true, cfg=0xffffffffd1a0) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/checkpoint/checkpoint_txn.c:2535
      #12 0x0000fffff71ade00 in __checkpoint_tree_helper (session=0xaaaaad3ac460, cfg=0xffffffffd1a0) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/checkpoint/checkpoint_txn.c:2673
      #13 0x0000fffff71a6b24 in __checkpoint_apply_to_dhandles (session=0xaaaaad3ac460, cfg=0xffffffffd1a0, op=0xfffff71add10 <__checkpoint_tree_helper>)
          at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/checkpoint/checkpoint_txn.c:340
      #14 0x0000fffff71a9b1c in __checkpoint_db_internal (session=0xaaaaad3ac460, cfg=0xffffffffd1a0) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/checkpoint/checkpoint_txn.c:1342
      #15 0x0000fffff71ab0a0 in __checkpoint_db_wrapper (session=0xaaaaad3ac460, cfg=0xffffffffd1a0) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/checkpoint/checkpoint_txn.c:1709
      #16 0x0000fffff71ab378 in __wt_checkpoint_db (session=0xaaaaad3ac460, cfg=0xffffffffd1a0, waiting=true) at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/checkpoint/checkpoint_txn.c:1788
      #17 0x0000fffff73c11e8 in __session_checkpoint (wt_session=0xaaaaad3ac460, config=0xaaaaab545610 "") at /home/dda/wt/git/wt-14782-python-disagg-triage-checkpoint/src/session/session_api.c:2289
      #18 0x0000fffff75f9588 in _wrap_Session_checkpoint (self=0xfffff7791080, args=0xfffff672dcc0) 

      and just looking at variables from the assertion:

      (gdb) p checkpoint_id
      $1 = 1
      (gdb) p multi->block_meta.checkpoint_id
      $2 = 2 

       

              Assignee:
              [DO NOT USE] Backlog - Storage Engines Team
              Reporter:
              Donald Anderson
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: