Repository navigation
Tests: a crash at the set-aside step of a delete from the Device, then recovery (#890) - #946
Merged
Merged
Conversation
…n recovery (#890) DeviceTakeRelease sets the Device's Take aside before its second check. These tests leave the Device as a crash there would (the Take in .moved Take 01) and run MoveRecovery: a Take the Drive holds in full is deleted (the delete is finished), one the Drive does not is put back, a kept stand-in Take is finished and its listing cleared on the Drive, and the Drive's Take is never re-listed as a Stand-in. Assisted-by: Claude Code:claude-sonnet-5-5
Skeyelab
enabled auto-merge (squash)
October 23, 2026 03:43
Closed
3 tasks
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
One item of #890, tests only (no source change).
DeviceTakeReleasesets the Device's Take aside (.moved Take 01) before its second check; the issue asked whatMoveRecovery.rundoes after a crash right there, and whether it could wrongly re-list a kept Take as a Stand-in. It does not. Three tests leave the Device as that crash would and run recovery:The tests passed on the first run, since they pin behavior that already holds; there is nothing to make red.
VERIFY_QUICK=1 ./scripts/verify.shpasses. A Code Reviewer checked that the simulated crash state is exactly whatDeviceTakeRelease.runleaves, and its asks (assert why the Take is kept, the whole-Take sibling) are in.One inconsistency found, not changed: a normal Release of a kept stand-in Take never writes the Drive, so the Drive's
Take.jsonkeeps listing a stand-in that no longer exists on the Device, while recovery after a crash clears it. The reviewer grepped the readers of that listing (report, project export, abandoned-copy recovery, CutOffTake) and found nothing user-visible, but #879's idea is that the Drive names stand-ins only while the Device holds them. Release writing nothing to the Drive is deliberate (releasedpins it). Worth a follow-up issue if wanted.