Repository navigation
crash gate: a fleet step runs the crash gate on any feat commit; a socket timeout says what the socket did - #28813
Conversation
… any feat commit; a socket timeout says what the socket did scripts/measure/crash-gate.sh builds a tagged Debug cmux-next app at the step's commit (reload.sh, as tab-switch.sh) and runs scripts/cmux-next/crash-ends-app-gate.py on it. On a feat-cmux-next push the CI crash gate is skipped, so no tip had run it since #28041 merged; this is the fleet route (cmux-ci run --class exclusive --label measure --label gui-session-v1 --script scripts/measure/crash-gate.sh --ref SHA). No CI change. crash-ends-app-gate.py: "the app's debug socket never answered" (run 41132712722 attempt 1, #28041's only gate result) gave no cause. The message now names the socket path, whether it exists, whether the app still runs and the last reply (a timeout means the main thread did not serve debug.crashes; a refused connect means no listener).
|
Independent review (fresh subagent, read-only, correctness first): no blocking defect.
Review (claude-subagent): SHIP at d2be521 |
|
Review (independent review subagent, Claude Opus 5.5): SHIP at d2be521 Scope: I read the diff Findings (none block):
Non-blocking notes:
|
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base 51ed666; does not block Shipped in:
|
|
Found 2 test failures on Blacksmith runners: Failures
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Summary
scripts/measure/crash-gate.sh: it builds a tagged Debug cmux-next app at the step's commit (reload.sh, the same route asscripts/measure/tab-switch.sh) and runsscripts/cmux-next/crash-ends-app-gate.pyon it. On afeat-cmux-nextpush the CI crash gate job is skipped, so no tip has run the gate since cmux-tui hook: one queue and one connection per agent; a busy daemon never costs a hook event #28041 merged (00:35:22Z). This gives the tip the gate without a CI change:cmux-ci run --class exclusive --label measure --label gui-session-v1 --script scripts/measure/crash-gate.sh --ref SHAcrash-ends-app-gate.py: the message "the app's debug socket never answered" (run 41132712722 attempt 1, the only gate result of cmux-tui hook: one queue and one connection per agent; a busy daemon never costs a hook event #28041) gave no cause. The message now names the socket path, whether it exists, whether the app still runs, and the last reply. A timeout means the main thread did not servedebug.crashes; a refused connect means no listener. The pass and fail rules do not change.The script must be on
feat-cmux-nextbefore the controller runs it (an unlistedscripts/measurescript runs only at a commit on a reviewed branch, and the worker checks its bytes against the branch tip).Changelog
none
Observed / Not run
bash -nandpy_compilepass;prepush-gate.pyreports no new violations. The CI log of run 41132712722 (job 124327772537, cmuxs-Mac-mini-4): both launches ran 180 s,app-*.logholds only the open-file limit line, both runs end "debug socket never answered".feat-cmux-next). It runs on the tip right after merge; the result goes in a comment here.Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Adds a fleet step that runs the cmux-next crash gate on a tagged Debug build of any feat commit, since CI skips that gate on
feat-cmux-nextpushes. The step builds the app viareload.sh(the same route astab-switch.sh) and runscrash-ends-app-gate.py; pass and fail rules are unchanged. Run it per commit withcmux-ci run --class exclusive --label measure --label gui-session-v1 --script scripts/measure/crash-gate.sh --ref SHA.The gate's socket-timeout message now says what the socket did: its path, whether it exists, whether the app still runs, and the last reply. A timeout means the main thread never served
debug.crashes; a refused connect means no listener.Written for commit d2be521. Summary will update on new commits.