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

With tiered hook, checkpoint cursor test fails

    • StorEng - Refinement Pipeline

      Running the attached test with the tiered hook, the following assert from wt_txn_rollback is triggered:

        2080	        /* Metadata updates should never be rolled back. */
      -> 2081	        WT_ASSERT(session, !WT_IS_METADATA(op->btree->dhandle)); 

      Here's the backtrace:

      (lldb) bt
      * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
        * frame #0: 0x0000000181158764 libsystem_kernel.dylib`__pthread_kill + 8
          frame #1: 0x000000018118fc28 libsystem_pthread.dylib`pthread_kill + 288
          frame #2: 0x000000018109dae8 libsystem_c.dylib`abort + 180
          frame #3: 0x00000001037cb300 libwiredtiger.11.2.0.dylib`__wt_abort(session=0x00000001101b4740) at os_abort.c:30:5
          frame #4: 0x00000001038db190 libwiredtiger.11.2.0.dylib`__wt_txn_rollback(session=0x00000001101b4740, cfg=0x0000000000000000) at txn.c:2081:9
          frame #5: 0x00000001038eaa90 libwiredtiger.11.2.0.dylib`__txn_checkpoint(session=0x00000001101b4740, cfg=0x000000016fdfc1e0) at txn_ckpt.c:1378:9
          frame #6: 0x00000001038e6e50 libwiredtiger.11.2.0.dylib`__txn_checkpoint_wrapper(session=0x00000001101b4740, cfg=0x000000016fdfc1e0) at txn_ckpt.c:1443:11
          frame #7: 0x00000001038e678c libwiredtiger.11.2.0.dylib`__wt_txn_checkpoint(session=0x00000001101b4740, cfg=0x000000016fdfc1e0, waiting=true) at txn_ckpt.c:1519:9
          frame #8: 0x000000010386f3f4 libwiredtiger.11.2.0.dylib`__session_checkpoint(wt_session=0x00000001101b4740, config=",flush_tier=(enabled,force=true)") at session_api.c:2370:11
          frame #9: 0x0000000102676d48 _wiredtiger.so`_wrap_Session_checkpoint(self=0x00000001025c97c0, args=0x00000001042f8c80) at wiredtigerPYTHON_wrap.c:7596:21
          frame #10: 0x000000010046e428 Python`cfunction_call + 96
          frame #11: 0x000000010041f320 Python`_PyObject_MakeTpCall + 132
          frame #12: 0x000000010050fffc Python`_PyEval_EvalFrameDefault + 24048 

      This predictably fails on my Mac, but if I mess with the test in some simple ways, it can fail to fire.

      I developed the test to chase another bug, it randomly does one of 4 things over and over:  add data to one of 10 tables, do a checkpoint, open a checkpoint cursor, close one of the open checkpoint cursors.  Obviously checkpoint cursors will be held over one or more checkpoints - that is the point of the test.

      The tiered hook makes every checkpoint into a flush_tier checkpoint.

        1. test_checkpoint31.py
          5 kB
          Donald Anderson

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            donald.anderson@mongodb.com Donald Anderson
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: