-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Critical - P2
-
Affects Version/s: None
-
Component/s: Metadata, Schema Management
-
Storage Engines - Foundations
-
113.47
-
SE Foundations - 2026-08-18, SE Foundations - 2026-09-01
-
3
Problem
A layered table held locally without its stable constituent — e.g. a follower that applied a mirrored drop and recreate of the same URI — picks up a checkpoint cut before the drop's REMOVE drained. The shared metadata still carries the previous incarnation, and pickup adopts its stale file: entry under the recreated table.
Impact
The table opens the dropped incarnation's btree: stable reads return the old table's data under the new name, and the next pickup halts on the btree ID change (checkpoint pickup metadata mismatch ... "id" differs). Every two-node schema_disagg_abort mode currently aborts on this within seconds.
Root cause
The both-have-layered: branch of __disagg_apply_checkpoint_meta (src/conn/conn_layered_checkpoint_pick_up.c) adopts the shared file: entry whenever the local one is missing, without the queue-vs-checkpoint-epoch check its table-absent-locally neighbour already performs. Distinct from the pure-follower drop-path gap (WT-18068/WT-17746): here the local metadata was correct and the pickup itself re-introduces the stale entry.
Reproduction and fix
test_layered_schema28.py: deterministic, fails unfixed, passes fixed. Fix: skip adopting the stable component when the table's latest queued create sits above the checkpoint's schema epoch; a later checkpoint that covers the create supplies the right constituent.
- is related to
-
WT-18068 Follower reads stale btree ID after leader create/drop/create of a layered table
-
- In Code Review
-
-
WT-17746 Handle table drop during checkpoint pick-up
-
- Open
-
-
WT-14730 Validate immutable metadata config fields on checkpoint pickup
-
- Closed
-
-
WT-18258 Run operations during async step-down window
-
- Closed
-
- related to
-
WT-18068 Follower reads stale btree ID after leader create/drop/create of a layered table
-
- In Code Review
-
-
WT-18284 Ensure correct handling of CREATE/DROP/CREATE patterns
-
- Backlog
-
-
WT-17746 Handle table drop during checkpoint pick-up
-
- Open
-
-
WT-18343 schema-disagg-abort: Let schema publish operations straddle step-down timestamp
-
- Backlog
-
-
WT-14730 Validate immutable metadata config fields on checkpoint pickup
-
- Closed
-