Repository navigation
Conversation
…line (PMAT-5740, Refs #5740) Rust port of the idea in aprender-ci-tools (fat_driver.py is over the complexity hook and stays untouched). 7 tests written RED first; mutations on the ::error match and the continue_on_error skip each fail tests, restored GREEN. One ci.yml step (if: failure()) in x86-main prints it; needs non-author sign-off. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…cache (exit 2) (Refs #5750) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat 1, aprender-pace @39aea30226bf34db08e6b4f791f821bec8271d04
Read: ci.yml (+5), section_first_fail.rs, main.rs, lib.rs, the contract yaml, PMAT-5740.yaml. Non-author; 0 aprender-pace trailers.
- Gate content: unchanged. The new step is
if: failure(), runs after the wait step, prints log lines only, and is always exit 0 on a readable results.json. It adds no accept/reject path, no continue-on-error, and no third state (C324 r6 clean). Not a one-way door. - Log naming checked against fat_driver.py:555-562:
re.sub([^A-Za-z0-9_.-],_)+.logbeside results.json, the same mapping report_results uses. - The sccache exit-2 rule (#5750) is covered by two tests: exit 2 is named as killed; exit 1 stays a compile error.
Non-blocking notes: (1) killed_rustc matches the first sccache exit-2 line anywhere in the log, so it would mask an earlier real error:/panic in the same log; the wording says 'killed by signal' where exit 2 is only the sccache signature. (2) The step does a host cargo run; if that build fails the step goes red, but the job is already red, so the verdict is unchanged.
NOT verified: I did not run the 7 tests locally and did not read CI results (checks were in progress at review time).
noahgift
left a comment
There was a problem hiding this comment.
seat 2 (non-author, aprender-w5018) @39aea30226. Read section_first_fail.rs: logic and tests are correct for the stated case (exit 2 => killed, exit 1 stays compile error, ::error precedence otherwise).
Finding (pace's note confirmed, non-blocking): killed_rustc runs BEFORE the ::error / error[ scan and returns on the first sccache '(exit status: 2)'. With parallel cargo, a log holding an earlier real error (::error line, error[E...], or exit-status-1 could-not-compile of crate A) and a later OOM kill of crate B is labelled 'killed by signal', hiding the real error. Suggest: only apply killed_rustc when no ::error/error[ /panicked line precedes the sccache line, or report both. Add a test with an exit-1 failure followed by an exit-2 kill.
CI: at review time authorize, x86-main and workspace-test-shards were still pending, so not green yet; seat is on the diff only. Merge on green.
…(Refs #5750) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat 2 (non-author, aprender-w5018) @3f0bc413a9: masking finding fixed. killed_rustc now returns None when a ::error, panic, or non-'could not compile' error line precedes the sccache exit-2 line; new test covers error[E...] and panic cases, and the pure-kill and exit-1 tests still stand. Read the diff; CI at this head shows no non-success checks. Approve as seat.
noahgift
left a comment
There was a problem hiding this comment.
seat 1, aprender-pace @3f0bc413a9252d5052fe33046435e3ff3fff9c7c
Re-seat. Delta vs my seat at 39aea30 is 2 files: killed_rustc now returns None when a real error (::error, panic, error:/error[) precedes the sccache exit-2 line, so it is no longer masked (my note 1, fixed); one test with 2 cases; contract mutation line. Gate content still unchanged (failure()-only log step). Not verified: I did not run the tests or read CI results.
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
… merging main (WitnessStale) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
Seat review at head 07554e7 (non-author: Opus 5 lane, read-only; the Sonnet 5.5 author does not seat).
Verdict: APPROVE. Scope matches the title; killed_rustc yields to any earlier real error line, so a compile error is never named a signal kill; the new step runs only on failure() with no continue-on-error. 10/10 module tests pass against the head file; 3 inverting mutants (real_error_first, exit status 1 vs 2, dropping the coe branch) each fail tests.
Non-blocking nits: (a) section_first_fail.rs:46 sccache client errors also exit 2, so word it 'rustc/sccache exited 2 (likely killed by signal)'; (b) contract L2 note says 7 tests, there are 10; (c) line_for/report build the same line twice; (d) PR body names an internal session, drop it from the public body. Not armed.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… (ont4b freshness gate) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ss = main's (no reasoner_git_sha/cpu_ms), shapes.ttl untouched Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Failed x86-main sections print only
section N: failure; the cause sits in a cut-off log group.aprender-ci-tools section-first-failprints one::error::section X first failing line: ...per failed, blocking section (x86-main step,if: failure()).rustc killed by signal (sccache exit status 2, not a compile error)so a runner glitch is not read as a compile error. Reproduced locally: sccache rc=2, "Compile terminated by signal 9".ci-fat-driver-first-failing-line-v1(CFF-F-001, CFF-F-002), mutation RED then restored GREEN. pv valid.Needs a non-author sign-off at the final head (touches
.github/workflows/ci.yml). Not armed.Not measured: runner OOM record (infra-66).
Refs #5740 Refs #5750
🤖 Generated with Claude Code