-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Layered Tables
-
None
-
Storage Engines - Foundations
-
528.241
-
None
-
None
The __clayered_ignore_missing_stable check can tolerate a missing stable table when it should not. The role-change part of the check is needed for the race with reconfigure(role="follower"), which clears the created-during-step-down flag before publishing the role. The step-down-timestamp part is not needed for that race and can hide a genuinely missing stable table: the tolerated open failure leaves the cursor with no constituents at all, and iteration then asserts in diagnostic builds and dereferences NULL in release builds.
This is not urgent: reaching it requires another defect that makes a leader-era table lose its stable constituent.
Proposed fix: rework __clayered_ignore_missing_stable to check only for the role change.
- related to
-
WT-18317 __clayered_ignore_missing_stable diagnoses an open-time failure with check-time state
-
- Backlog
-
-
WT-18359 Investigate whether ENOENT tolerance in __curstat_layered_init is reachable
-
- In Code Review
-
-
WT-18259 Investigate reads racing an async step-down against the stable table being marked read-only and outdated
-
- Closed
-