Skip to content

Repair ZooKeeper snapshot interruption and truncation recovery - #192

Merged
Qian-Cheng-nju merged 3 commits into
mainfrom
fix/zookeeper-sync-recovery
Oct 14, 2026
Merged

Qian-Cheng-nju merged 3 commits into
mainfrom
fix/zookeeper-sync-recovery

Conversation

@Qian-Cheng-nju

Copy link
Copy Markdown
Member

An interrupted SNAP currently leaves temporary history in the ZooKeeper model. A later rejected TRUNC can be discarded while the follower continues through NEWLEADER, leading to inconsistent logs. Recovery can also reuse a snapshot position beyond the replacement history.

Align these paths with ZooKeeper 3.7.0: restore the pre-SNAP history on incomplete synchronization shutdown, model failed truncation through the existing crash transition, allow truncation of provisional history, and refresh the position of a replacement snapshot. The nine safety targets are unchanged. Regenerated dependency files drop the now-unused original timeout helper.

Validation: 27 new TLC regressions passed, including reachable leader/follower/partition interruption paths, completed-sync preservation, recovery-disabled controls, and focused truncation/snapshot handler checks. Existing module-task tests passed (92 passed, 1 skipped); the complete generated suite verifies with 0 errors. Ruff and diff checks pass. Handler edge tests inject explicit local preconditions and do not claim end-to-end reachability of that setup.

Draft for review of the synchronization and persistence abstraction. Finite regressions do not establish the nine unbounded safety theorems or complete disk-format fidelity. No new proof experiment has been launched; earlier experiment artifacts remain untouched.

@Qian-Cheng-nju
Qian-Cheng-nju marked this pull request as ready for review October 14, 2026 05:19
@Qian-Cheng-nju
Qian-Cheng-nju merged commit d29eb13 into main Oct 14, 2026
1 check passed
@Qian-Cheng-nju
Qian-Cheng-nju deleted the fix/zookeeper-sync-recovery branch October 14, 2026 05:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant