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).