fix(tests/os): the rig A/B leg asserted a revert the rig's own commit gate forbids - #888
Merged
Conversation
… gate forbids First execution of the rig phase (it had never run) refuted two of its own assertions: after installing v2 the leg waited for the miner on the new slot — and a rig COMMITS on the miner running, the very event it waited for — then expected an "uncommitted" reboot to revert. The rig had already self-committed, the reboot stayed v2, and the follow-up install then targeted the wrong slot, reading the grubenv of a machine one step ahead of the script. The leg now asserts the actual contract: the updated slot self-commits (B_OK=1 B_TRY=0, no harness hands) and persists across a reboot. The uncommitted-fallback machinery — same grub.cfg, same RAUC — stays the update phase's to prove, on an unprovisioned box where no boot path self-commits; the closing commit window on a provisioned rig is the property, not a gap. README updated to match. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5 tasks
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.
The rig phase's first-ever execution (it shipped in #876 and had never run) refuted two of its own assertions. After installing v2 the leg waited for the miner on the new slot — and a rig commits on the miner running, the very event it waited for — then expected an "uncommitted" reboot to revert. The rig had already self-committed (which the leg itself proves for slot A three assertions earlier), the reboot stayed v2, and the follow-up install then targeted the wrong slot, reading the grubenv of a machine one step ahead of the script.
The leg now asserts the actual contract: the updated slot self-commits (
B_OK=1 B_TRY=0, no harness hands) and persists across a reboot. Uncommitted-fallback machinery — same grub.cfg, same RAUC — stays the update phase's to prove, on an unprovisioned box where no boot path self-commits; on a provisioned rig the closing commit window is the property, not a gap. README updated to match.Executed
Re-run on gouda against the real image after the fix:
That green run is the first complete rig-phase pass — the acceptance bar on #77's rig leg (a rig booting from a stick and taking an A/B update like a coordinator) is now demonstrated, not assumed.
🤖 Generated with Claude Code