-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Btree
-
None
-
Storage Engines - Transactions
-
106.576
-
SE Transactions - 2026-06-19
-
3
Recently we got the following error in CI, running test_hs21.py under the disagg hook (see WT-16899):
[pid:97972]: FAIL: test_hs21.test_hs21.test_hs(string-row) ---------------------------------------------------------------------- [pid:97972]: testtools.testresult.real._StringException: Traceback (most recent call last): File "/Users/ec2-user/data/mci/93ba950452cfe0afe03947a59adc5a8c/wiredtiger/test/suite/wttest.py", line 161, in wrapper return func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/ec2-user/data/mci/93ba950452cfe0afe03947a59adc5a8c/wiredtiger/test/suite/wttest.py", line 309, in _callTestMethod method() File "/Users/ec2-user/data/mci/93ba950452cfe0afe03947a59adc5a8c/wiredtiger/test/suite/test_hs21.py", line 214, in test_hs self.assertEqual(initial_run_write_gen, base_run_gen) File "/Library/Frameworks/Python.Framework/Versions/3.11/lib/python3.11/unittest/case.py", line 873, in assertEqual assertion_func(first, second, msg=msg) File "/Library/Frameworks/Python.Framework/Versions/3.11/lib/python3.11/unittest/case.py", line 866, in _baseAssertEqual raise self.failureException(msg) AssertionError: 1 != 2 ---------------------------------------------------------------------- Ran 12824 tests in 5456.197s
The assertion that failed here checks that the runtime write generation of a btree shouldn't have changed after being sweeped + reopened.
This doesn't consistently pass right now, as the conditional for updating the btree's run_write_gen with it's own write_gen is too broad (see bt_handle.c:btree_conf):
if (F_ISSET(session, WT_SESSION_IMPORT) || ckpt->run_write_gen < conn->base_write_gen || F_ISSET(btree, WT_BTREE_DISAGGREGATED)) btree->run_write_gen = btree->write_gen; else btree->run_write_gen = ckpt->run_write_gen;
The inclusion of the F_ISSET(btree, WT_BTREE_DISAGGREGATED) check only applies to checkpoint btrees picked up by the follower/standby node, or a recently stepped up leader (where the checkpoint was written by a different node).
This ticket should correct the above run_write_gen update condition, and revert the test change in WT-16899 that suppressed the original assertion.
- is related to
-
WT-16899 Fix test_hs21 in disagg mode, unexpected base write gen
-
- Closed
-