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

Failure in example_prepare.py and prepare_stress.py due to unexpected timestamp usage

    • 3
    • Storage Engines - 2023-01-10, StorEng - 2023-01-24

      Using the tip of develop (5fd7e267d45ad2cc1704c5c2e0c1f43823b699d0):

      mkdir build
      cd build
      cmake -G Ninja ../. && ninja
      python3 ../bench/workgen/runner/example_prepare.py
      populate:
      transactional prepare workload:
      [1669721206:513966][18497:0x7f8422ffd700]: [WT_VERB_DEFAULT][ERROR]: __txn_timestamp_usage_check, 878: file:test.wt: unexpected timestamp usage: no timestamp provided for an update to a table configured to always use timestamps once they are first used: Invalid argument
      [1669721206:514022][18497:0x7f8422ffd700]: [WT_VERB_DEFAULT][ERROR]: __wt_abort, 28: aborting WiredTiger library
      Aborted (core dumped)
      

      The core indicates the following stack trace:

      #0  0x00007f8476197e87 in raise () from /lib/x86_64-linux-gnu/libc.so.6
      #1  0x00007f84761997f1 in abort () from /lib/x86_64-linux-gnu/libc.so.6
      #2  0x00007f8474cc944d in __wt_abort (session=session@entry=0x18eb150) at ../src/os_common/os_abort.c:30
      #3  0x00007f8474d74b5b in __txn_timestamp_usage_check (upd=0x7f840c0010e0, op=0x7f840c000b70, session=0x18eb150) at ../src/txn/txn.c:880
      #4  __wt_txn_commit (session=session@entry=0x18eb150, cfg=cfg@entry=0x0) at ../src/txn/txn.c:1666
      #5  0x00007f8474c251ff in __curfile_update (cursor=0x1c443b0) at ../src/cursor/cur_file.c:508
      #6  0x00007f8473bf907e in workgen::ThreadRunner::op_run (this=this@entry=0x19e2610, op=op@entry=0x199e330) at ../bench/workgen/workgen.cxx:1111
      #7  0x00007f8473bf9162 in workgen::ThreadRunner::op_run (this=this@entry=0x19e2610, op=0x19fcb08) at ../bench/workgen/workgen.cxx:1160
      #8  0x00007f8473bfa396 in workgen::ThreadRunner::run (this=this@entry=0x19e2610) at ../bench/workgen/workgen.cxx:817
      #9  0x00007f8473bfa4f1 in workgen::thread_runner_main (arg=0x19e2610) at ../bench/workgen/workgen.cxx:124
      #10 0x00007f8475f416db in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
      #11 0x00007f847627a61f in clone () from /lib/x86_64-linux-gnu/libc.so.6
      (gdb) f 3
      #3  0x00007f8474d74b5b in __txn_timestamp_usage_check (upd=0x7f840c0010e0, op=0x7f840c000b70, session=0x18eb150) at ../src/txn/txn.c:880
      880             __wt_abort(session);
      (gdb) list
      875               "%s: " WT_TS_VERBOSE_PREFIX
      876               "no timestamp provided for an update to a table configured to always use timestamps "
      877               "once they are first used",
      878               name);
      879     #ifdef HAVE_DIAGNOSTIC
      880             __wt_abort(session);
      881     #endif
      882     #ifdef WT_STANDALONE_BUILD
      883             return (EINVAL);
      884     #endif
      (gdb) 
      

      Note that it works on 6.0 and fails on 6.1, hopefully, this helps to find the offending commit. We may have changed WiredTiger behaviour which means we would need to align the test.

      The same is observed for the prepare_stress.py workload (there is a typo in this file -> transcations).

            Assignee:
            mariam.mojid@mongodb.com Mariam Mojid (Inactive)
            Reporter:
            etienne.petrel@mongodb.com Etienne Petrel
            Lachlan Ting (Inactive), Ravi Giri
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: