Repository navigation
fix(bench): a paired base that hangs ends after ten silent minutes - #8650
Merged
Merged
Conversation
Quest-Claim: 892abbc84463f3fd
…stead of holding the Nightly leg to its hour Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
kixelated
marked this pull request as ready for review
November 13, 2026 19:05
Contributor
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 31 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
Contributor
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
Reviewed the idle bound added to criterion_exec and how its failure flows into the paired base, current, and confirmation paths.
- Idle-bounded
criterion_exec: the target's stdout is now read through a process-substitution fd. Each line has aread -twindow, so a target that prints nothing forBENCH_CRITERION_IDLE_SECONDS(default 600) gets SIGKILLed and returns 1, and the error names the last line it printed. When the target finishes normally,criterion_execstill returns the target's exit status throughwait "$pid". - Caller behavior: nothing changed in the callers, but the new failure now reaches them. A hung base marks its target
base run failed, a hung current target setsstatus=1, and a hung confirmation round marks its targetconfirmation failed. - Slow test:
bench/build.slow.test.pygains ahangsbase that prints a line and then parks. It checks for the hung message and thebase run failedunavailable entry. I ran it locally and it passes in about 29s on bash 5.3. - Docs and quest: the README now describes the bound, and the quest's Plan and Waiting now wait on the first scheduled Nightly after the bound lands.
claude-opus-5-5 | 𝕏
This was referenced Nov 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Claims quest/m0/nightly/lite06-join-hang.md.
Summary
The lite-06 join fix worked; the 2026-11-13 Nightly's relay job still timed out because of its paired base, not the current tree.
just gh nightly rust-relaybuilds the previous scheduled Nightly's commit (here997ae11, from 2026-11-12 15:39Z, before the fix merged at 16:57Z) and runs its benchmarks first. That base still has the lite-06 join hang, socriterion-base: moq-relay/sessionstopped atrelay_session_join_broadcasts/moq-lite-06/relays=1/...and nothing ran for 45 minutes until the hour cancelled the job. The current tree never started.Rust bench targetsjob was cancelled for the same reason: its basemoq-net/sessionstopped atsession_join_broadcasts/moq-lite-06/relays=1/....bench/run.shalready treats a failed base as "unavailable", but a base that never exits was unbounded.criterion_execnow kills a target that prints nothing forBENCH_CRITERION_IDLE_SECONDS(default 600) and fails that run, naming the last line it printed. A hung base marks its target unavailable (still failing the paired gate loudly); a hung current target fails the run with the hung case named instead of a cancelled job with no artifacts.relaysession pass takes about 4 minutes on a loaded 32-core host, every case a few seconds).7df2ebf, which has the fix, so this specific hang heals on its own; the bound keeps the next bad base from repeating it.Quest: Plan and Waiting rewritten to wait for the first scheduled Nightly after this lands.
Validation
BENCH_BASE=997ae11 just gh nightly rust-relayon the oldrun.shhung at the same case; cancelled by my 30 minute cap after zero output.Criterion moq-relay/session hung: no output for 120s after: Benchmarking relay_session_join_broadcasts/moq-lite-06/relays=1/..., ran the current tree'smoq-relay/sessionthrough every cell, and finished in 11.5 minutes withUNAVAILABLE moq-relay/session: base run failedand a report (52 faster, 74 unchanged).join_broadcasts/join_stalecell.bench/build.slow.test.pygains ahangsbase (prints, then parks);just checkpasses.Other failures in that Nightly run (not fixed here)
Nightly (JS benchmarks):js/net/bench/requests.ts:55throwswrong publisher instance.Fuzz (varint, lite, session_lite, ...):moq-netfails to build under the fuzz profile (a deprecatedfetch_update, 1 error).Audio quality: chromiumav_lag_msthresholds exceeded (e.g. congestion p95 1434 ms against 32).Media (firefox player):just test interop --mediafails.Nightly (Python audit),Gate cost,Shipping sizesfailed andfeatures / Featureswas cancelled; I did not look into their causes.Rust bench targets: same base hang as above, fixed by this change.Public API and wire
None (bench tooling only).
Decisions (taken without prompting)
Follow-ups
Models
Size: XS
Implementer: Claude Code, claude-sonnet-5-5, unknown effort
(Written by Sonnet 5.5)
🤖 Generated with Claude Code
Review
Rewritten by
quest reviewafter each round.Head: 2930804
Base: origin/main at b852a32
Reviewer: Codex, gpt-6.1-sol, medium effort
Session:
01a1d64c-1fd7-7aa0-9f54-15ee045d9e5f, round 1Score: 9/10,
No actionable defects were found; timeout handling preserves current results when a paired base hangs, though builds and tests were not run as instructed.Rounds: 1; findings 0: fixed 0, refuted 0, open 0
Findings: none