Make residual-output CI evidence deterministic - #38
Merged
xor-machine merged 4 commits intoAug 2, 2026
Merged
Conversation
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.
Summary
Motivation / Context
PR #37 failed the Fast job at
residual descendant output-cap diagnostic is exact. The runner returned infrastructure status and removed the residual process group, but the fixture's child received TERM before it installed the flood trap. Because no output cap was crossed, the runner truthfully emitted the generic residual-group diagnostic instead of the expected output-cap diagnostic.The same content had passed another run, proving this was a fixture scheduling race rather than an Experiment or release-content regression.
Changes
STARTED,ARM, andREADYpaths to the residual-flood fixtureSTARTEDwhile TERM is ignored, wait for parent-ownedARM, install the flood trap, then publishREADYSTARTED, publishARM, wait boundedly for post-trapREADY, and fail closed with status 125 if either phase is unavailableThe first delay-based attempt in
c3946f4/b5c10bcwas rejected because a sufficiently long scheduler pause could make its RED false-green. The authoritativea9ab07f/2ca15d7cycle replaces elapsed-time ordering with the schedule-independent phase protocol.Testing
a9ab07f:bash tests/dev/security-gate-concurrency-cases.shreturned 1 with two named failures caused by withheldARM: the generic diagnostic replaced the exact output-cap diagnostic, and the deliberately unarmed child exceeded the pre-completion timing oracle; infrastructure status and group cleanup still passed2ca15d7:bash tests/dev/security-gate-concurrency-cases.shreturned 0 withSUMMARY failures=0./scripts/dev/check default quick: 32 passed, 0 failed, 0 skipped, 0 infrastructure failures./tools/validate.sh --strict: passedgit diff --check origin/dev...HEAD: passed