Repository navigation
cmux-next: swift test log goes in the job's RUNNER_TEMP, not the shared /tmp - #23143
Conversation
…ed /tmp swift-test-summary.test.sh failed once on #21185's CI: the wrapper's /tmp/swift-test-log.* vanished mid-run, so the report could not name the unfinished test. Six later feat-cmux-next runs pass it. The crash reports already go to $RUNNER_TEMP; the log now does too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-9c97-76c3-88d7-6d0422d2fadc&host=cosmic-gray
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
|
|
Owned by projects-ee on cosmic-gray · session |
|
Found 27 test failures on Blacksmith runners: Failures
...and 17 more test failures. View all on Blacksmith
|
An empty $log made the EXIT trap rm -f "" .* (every dotfile in the working directory). Found by the review of this PR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-9c97-76c3-88d7-6d0422d2fadc&host=cosmic-gray
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Bead |
|
Shipped in:
|
#23290) The watcher subshell inherited the EXIT trap. Killed before its first line ran (a run that ended at once on a loaded host), it ran the trap and deleted the log before the report read it: swift-test-summary.test.sh failed about 1 in 10 runs at 32 checks at once (reproduced on huge-blue: 9/96, 17/192; with this change 0/192). #23143 moved the log out of /tmp on a wrong guess; its mktemp guard stays. Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-9c97-76c3-88d7-6d0422d2fadc&host=cosmic-gray Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
Review (subagent, correctness first): SHIP at 024a53b This is a post-hoc independent review of the merged change (merge commit cc347e0). It was read-only and nothing was run. risk:low (CI wrapper script only). Nothing blocks. Notes:
The merge-audit revert of this PR is handled separately. See leo-workspace |
swift-test-summary.test.shfailed once on #21185's CI (cmux-next checks, job 119061489846), in the "crashed run" case:The wrapper's temp log in
/tmpdisappeared before the wrapper reported, so the report could not name the unfinished test. The wrapper only deletes its own log, on EXIT, and no script in the repo sweeps/tmp/swift-test-log.*, so the delete probably came from outside the run, most likely one of the ~32 script tests the checks job runs at once (run-checks-concurrently.sh). I did not find the deleter. This is a flake, not a steady base red: the six laterfeat-cmux-nextruns ofcmux-next checksall printswift-test-summary.test.sh: ok.Fix:
$RUNNER_TEMP(the job's own temp dir) when it's set, falling back to$TMPDIRor/tmpas before. The wrapper's crash reports already go to$RUNNER_TEMP. This helps if the deleter targets/tmp, which is likely but unproven.mktempfailed,$logwas empty and the EXIT trap ranrm -f "" .*, deleting every dotfile in the working directory. The wrapper now stops with an::errorinstead.This is separate from #23129, which fixes a different flake in the same test (the crash-report mtime in the signal case).
Observed (macOS):
bash scripts/cmux-next/tests/swift-test-summary.test.shpasses withRUNNER_TEMPunset and with it set to a fresh directory.RUNNER_TEMP=/nonexistent/x, the wrapper exits 1 with the::errorand leaves the working directory's dotfiles alone.The
cmux-next CI guard groupred fails the same set of workflow-guard tests on base; it is not this PR's.🤖 Generated with Claude Code
Agent session: cosmic-gray