-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Test Python
-
None
-
Storage Engines, Storage Engines - Persistence
-
0.001
-
SE Persistence backlog
-
None
Motivation
The wait_for_checkpoint_start() method — an unbounded while True poll on the checkpoint_state statistic — is copy-pasted byte-for-byte across several tests: test_layered_checkpoint05, test_layered_checkpoint06, test_layered_checkpoint08 and test_layered_schema08. WT-17719 bounded the copy in test_layered_checkpoint08, but the other copies remain unbounded and carry the same risk of hanging to a task-level timeout instead of failing fast. Many other tests (test_checkpoint_, test_rollback_to_stable_) also poll checkpoint_state inline.
Approach
* Add a reusable, bounded wait_for_checkpoint_start(self, timeout=60) helper that asserts with a clear message on timeout. Because checkpoint-state waiting is not disaggregated-specific, put it on WiredTigerTestCase in test/suite/helpers/wttest.py so every test can use it without an import.
* Migrate the duplicated copies to the shared helper.
Definition of done
* Shared bounded wait_for_checkpoint_start helper added.
* The duplicated copies in the layered tests migrated to it.
* Tests still pass on the happy path.
Follow-up to WT-17719 (see also WT-17700).