Repository navigation
VC-778: Bound only deliberately stalled stages in the crash-recovery fixture - #929
Merged
hussainph merged 1 commit intoOct 19, 2026
Conversation
…very fixture (VC-778) The fixture set followUpAdmissionTimeoutMs: 50 for the whole runtime, but that bound covers every adapter.attach (workspace + executor stages) and every cold binding rebuild, not only queued messages. A slow but healthy real Pi attach under CI load then came back rejected with queue_admission_timeout. Genuine work now keeps the production 30 s bound; the 50 ms bound applies only once the fixture enters an attach/admission gate. Adds a regression test with a real slow attach, and receipts in the accepted-status assertion messages.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Oct 19, 2026
hussainph
added a commit
that referenced
this pull request
Oct 19, 2026
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.
Problem
crash-recovery.integration.test.tsfailed in CI three times with timing-shaped errors (VC-778):start()line 197, the first freshadapter.attach, receivedrejectedcontext_replayattach receivedrejectedqueue_admission_timeout: binding recovery did not finishThe cause is in the fixture, not the product. It set
followUpAdmissionTimeoutMs: 50for the whole runtime. Insession-runtime.ts, that bound does not apply only to queued messages.#attachruns every attach's workspace and executor stages underfollow-up:${commandId}, including a user'sattach-*command.#rehydrateBindingruns every cold binding rebuild underfollow-up:${attachmentId}:recovery. A real Pi attach ornative_resumethat took longer than 50 ms on a loaded runner therefore became a falsequeue_admission_timeout, and the attach wasrejected. (An earlier note on the ticket said sighting 1 could not be this timer, because its id isattach-*. Thefollow-up:prefix inside#attachshows it can.)Fix (test-only)
attachGate/admissionGate). The wrapper sets that flag synchronously, before the runtime starts the timer for that stage.executor attach/message admission). Before, a slow real rebuild ahead of the gate could time out and still satisfy them.toBe("accepted")assertions print the receipt, so any future refusal is named.No retry was added, and no timeout was widened for the stalled stages.
Decisions
Tests
accepts a slow but healthy attach and recovers its binding without a false admission timeout (VC-778). It uses a real 150 ms attach delay for the fresh attach and for the bootnative_resumerebuild.rejected/queue_admission_timeout: executor attach did not finishatstart().vp test run src/session-runtime/crash-recovery.integration.test.ts --maxWorkers=1).vp checkpasses on the touched file.Overlap:
git merge-treeis clean against origin/main and against the heads of #909, #919, #920, #921 and #922. No open PR touches this file.CI rerun disclosure
Run 39241933071, attempt 1:
Test (packages)failed only onsrc/worktree/watch.test.ts:1111("500 Done tickets … cost 10 gh calls a cycle", 5 s timeout). That is the known flake VC-856, unrelated to this change.crash-recovery.integration.test.tspassed 15/15 in that same run. The failed jobs were rerun once, with the supervising owner's approval.