-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Engines - Persistence
-
218.788
-
None
-
None
test/format runs disaggregated workloads but never publishes a materialization frontier, so last_materialized_lsn stays unset and every frontier-gated decision in the engine short-circuits to "allowed". Eviction refusals, cache-discard refusals, page-retention rules, and the read-ahead-of-frontier checks are all unreachable under our only randomized stress workload.
The gap is not theoretical. WT-18622 was a data-handle close that recorded a refused cache discard but continued on to mark the handle closed; sweep then destroyed the tree with its pages still in cache. Reaching it needs a leader, a frontier that is behind, a handle marked dead, and a sweep pass – a combination no WiredTiger test produces. It surfaced from MongoDB, not from our CI.
Add frontier support to test/format, with a configurable lag so the published frontier trails the workload's real LSN by a random, controllable amount. The lag is what matters: a frontier that always tracks the latest write reproduces today's behaviour and tests nothing.
Outcome
- format can run with the frontier lagging, and the lag is part of the randomized configuration space.
- Workloads that combine a lagging frontier with checkpoints, drops, eviction, and sweep run clean, in normal and diagnostic builds.
- A failure like
WT-18622is reproducible from a format CONFIG rather than only from a MongoDB workload.
- is related to
-
WT-18622 __wt_conn_dhandle_close clears WT_DHANDLE_OPEN after a failed cache discard, leaking the btree's pages
-
- Closed
-
-
WT-15818 Consider crashing upon reading ahead of materialization frontier
-
- Open
-
-
WT-14720 Statistic for cache eviction ahead of materialisation frontier is misleading
-
- Backlog
-
-
WT-14882 Revise rec_set_updates_durable usage
-
- Open
-