Repository navigation
test(two-node): simulator models the takeover read on a frozen peer's devices (F23) and F24 - #1506
Merged
Merged
Conversation
… devices (F23) and F24 Campaign c11/02c: ultra #219 isolated the lost peer's devices at the solo grant by closing them, but they still read as online; a follower survivor's IO-triggered takeover read the lvstore super block from a closed device, failed, and the survivor aborted (160 IO errors). The F23 model only covered the leader's writes (02a), so the simulator missed it. - The takeover's lvstore metadata read now waits on a still-frozen peer's data devices until its connections close after its abort on wake (F23, bed c9/c10 02c: 9 s), unless the node isolates them at the grant. - With isolation but without the new capability isolate_marks_devices_unavailable (#219's F24 commit marks the devices unavailable first), a solo follower's takeover read aborts the survivor (F24). - New scenario F24-frozen-primary-takeover-read (xfail on main for F23), test_f24_needs_its_own_fix, and the pending fix sets of the frozen-primary scenarios (F19, F20, F21) and F23's include the new capability. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Test code only: the two-node simulator now models the failure the c11 bed run found in ultra #219 (F24), and corrects the 02c model (F23).
What c11 showed
ParityOneRead::sNormalRead_Begin res=-6).Model changes
stoplist_peer_devices_on_grant).isolate_marks_devices_unavailable, a solo follower's takeover read aborts the survivor. That capability models Adding lvol id to lvol events #219's F24 commit, which marks the devices unavailable before resetting them.F24-frozen-primary-takeover-read: expected to fail on main for F23, and passes with the pending stack's capabilities.test_f24_needs_its_own_fixshows it fails with "F24" under Adding lvol id to lvol events #219 as run in c11.Tests
Run locally in WSL against real FoundationDB, filtered on
F24,F23,F21,F19,F20,02a,02band02c: 12 passed, 6 expected failures. The fast and full tiers run in CI. ruff is clean.The ultra side is simplyblock/ultra#219, commit 04c38403.
🤖 Generated with Claude Code