You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Same sweep (156 artifacts), durations from ~63 min to ≥90 min. The variance is wider than the headroom, so the outcome is decided by runner load rather than by whether anything is actually wrong.
Why this is worse than a slow gate
It is indistinguishable from a real failure at a glance. A timeout surfaces as fail; you have to read the duration to tell. That already cost a diagnosis cycle this week.
It trains re-running a red safety gate. The action that "works" is hitting re-run — precisely the reflex that gets a genuine failure clicked through.
But the other top whole-crate crates are cheap: relay-mavlink 5s, relay-rate 1s, falcon-sitl-hover <1s. So step conversion alone will not close a 30-minute gap.
Caveat: those were measured warm. The sweep spans 64 distinct crates under cargo test with 29 --release steps — two profile-wide compile sets. On a cold runner the dominant cost is almost certainly compilation, not test execution.
I have not measured the compile-vs-test split on the runner itself. That is the next measurement, and it should come before any fix is chosen.
Options, roughly in order of confidence
Raise timeout-minutes (e.g. 90 → 150). Cheapest, stops the false failures immediately, does not weaken the gate — it is being killed, not failing. Buys time to do the real work.
Measure compile vs test on the runner, then attack whichever dominates (cache warming, profile consolidation, or dropping the --release duplicates where they add nothing).
The
Verification gate (rivet-driven)is a required check whose runtime has converged on its owntimeout-minutes: 90. It is now a coin flip.Evidence
feat/verification-weak-evidence-censusfix/verification-gate-zero-matchperf/verification-named-testsfeat/rel-p01-draft-then-finalizeSame sweep (156 artifacts), durations from ~63 min to ≥90 min. The variance is wider than the headroom, so the outcome is decided by runner load rather than by whether anything is actually wrong.
Why this is worse than a slow gate
fail; you have to read the duration to tell. That already cost a diagnosis cycle this week.Where the time goes — measured, partially
cargo test -p falcon-coreis 60 tests / 51s and was invoked 8× per sweep as a whole-crate step ≈ 408s. perf(verify): name the tests 5 falcon-core verification steps actually rely on #343 converts 5 of those (measured 306s → 31s).relay-mavlink5s,relay-rate1s,falcon-sitl-hover<1s. So step conversion alone will not close a 30-minute gap.cargo testwith 29--releasesteps — two profile-wide compile sets. On a cold runner the dominant cost is almost certainly compilation, not test execution.I have not measured the compile-vs-test split on the runner itself. That is the next measurement, and it should come before any fix is chosen.
Options, roughly in order of confidence
timeout-minutes(e.g. 90 → 150). Cheapest, stops the false failures immediately, does not weaken the gate — it is being killed, not failing. Buys time to do the real work.--releaseduplicates where they add nothing).Option 1 is a stopgap and should be labelled as one; shipping it without option 2 just moves the cliff.
Related: #262 (whole-crate steps), #345 (a separate unreproducible
rivet validatefailure in this same gate).🤖 Generated with Claude Code