Repository navigation
[scheduled-gate:test.yml] CI core gate is failing on main #10030
Description
Activity
Diagnosis for the cargo-test / Run cargo test row, which this tracker names but does not localise.
The job is red on exactly one test:
test standalone_regression ... FAILED
thread 'standalone_regression' (63617) panicked at crates/perry/tests/child_output_late_iterator.rs:15:5:
Error: node-failed-spawn: 1 (signal none)
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 261.62s
error: test failed, to rerun pass `-p perry --test child_output_late_iterator`
Everything else in the job passes; this single failure is what turns cargo-test red, and cargo-test is a pr-gate input, so every open PR inherits it.
The test is a thin wrapper that shells out:
Command::new("node")
.arg(root.join("scripts/test-child-output-late-iterator.mjs"))
.env("PERRY_BIN", env!("CARGO_BIN_EXE_perry"))
.env("PERRY_TEST_BUILD_RUNTIME", "1")node-failed-spawn is the driver's own error text, so the failure is inside scripts/test-child-output-late-iterator.mjs rather than in the Rust test — the assertion at line 15 only surfaces the driver's non-zero exit.
Not a recent regression. cargo-test is red on every completed main run I checked back through 33690c5635 (2026-09-16 13:45) — that is 33690c5635, 99363beb1a (×2), 872ce07e24 (×2), f9c3e51e93, fdc437f966 (×2), ff19bd536a, fe0cc15b0f. The test's own last two commits (9143beb74e, 8f51d2b3f7) date to 2026-09-11, before that window, so this is not caused by the merge trains that landed in it.
Separately, and for the record on this tracker: the gap-suite rows are now green on main. All three sweep shards failed on 872ce07e24 and pass from fdc437f966 onward, which is #10387 landing via merge train 206.
Correction to my earlier comment: I overstated the blast radius. Open PRs do not generally inherit this failure.
I wrote that cargo-test feeds pr-gate "so every open PR inherits it". That is wrong. scripts/ci_plan.py:334 sets
"cargo_test_scope": "pr" if tier == "pr" and event == "pull_request" else "full",so the PR tier runs cargo-test scoped to the diff, and only the sweep/full tiers run it whole. ci_plan.py even self-tests this (check("core PR: cargo-test scoped", core["cargo_test_scope"] == "pr")). A PR whose diff does not name crates/perry/tests/child_output_late_iterator.rs never runs that test.
Confirmed empirically: #10349 is green on cargo-test right now, against the same main where the sweep-tier job is red. #10285 is green on it too, despite touching crates/perry/tests/.
So the accurate statement is narrower: the post-merge sweep on main is red, and main-gate fans that in — which is what this tracker is for — but individual PRs are unaffected unless their diff pulls the test into scope. My apologies for the noise; the diagnosis of which test and why stands, only the impact claim was inflated.
The rest of the earlier comment is unchanged: the failure is standalone_regression in child_output_late_iterator.rs with Error: node-failed-spawn: 1 (signal none), the Rust test is a thin wrapper around node scripts/test-child-output-late-iterator.mjs, and it is red on every completed main run back through 33690c5635, which rules out the recent merge trains.
CI core gatehas a completed red post-merge run.Current failure
5423c426f4066c666aa3311672aef270ff69f3aepushFailing rows
main-gate / Require the plan and every planned job to have passedDelta from the previous failed run
Previous failure:
dffccc7e648aNew failing rows:
Rows that recovered:
Last green main result
No green post-merge run was found in the last 100 results.
Maintained automatically by
gate-failure-watch.ymlfortest.yml. Repeated failures update this issue; the next green run closes it.