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
{{ message }}
Repository navigation
fix(net): the auth bench presents in-band tokens only on lite-07 - #8524
The session_delivery_compression/moq-lite-07-wip/... hang the quest tracked was already fixed by moq-dev/moq#8352, in the bench harness:
The 11-09 Nightly hung in the current build at b3fbce18. The 11-10 Nightly hung in its base build (BENCH_BASE=previous-nightly, the same b3fbce18); its own build cd560bde never ran.
The cause: the bench relay's origin had with_proxy off, so a lite-07 viewer was only offered the relay's own claims and never learned the publisher's broadcast. watch() then waited forever. That is documented moq-net behavior (a relay must turn proxy on), so no moq-net change and no merge-gate test is needed. No routing code involved.
The 11-11 Nightly then hung earlier, before the session bench, at auth/moq-transport-22/1/1. It reproduces on main. moq-dev/moq#8444 dropped in-band AUTH from moq-transport: auth().add() there now resolves at once, and no AUTH request reaches the peer. The bench's admission and waiting groups still ran on moq-transport-22 and waited for that request forever. (waiting's is_pending assert would also fail.)
Changes
rs/moq-net/benches/auth.rs: admission and waiting run only on moq-lite-07-wip, the one version with in-band AUTH. pair() loses its version parameter. renewal, renewal_one, and request_tokens stay on moq-transport-22, since they ride request tokens (AUTHORIZATION TOKEN), which still work.
Deletes the quest and its link from quest/m0/js-subscribe-drop-hang.md.
Made without asking: fixed the auth hang here instead of a new quest. It now blocks every later bench in the same job, including the one this quest is about, so the quest's goal can't be observed in Nightly without it.
Impact
Public API: none. Wire: none. The auth/moq-transport-22 and auth/waiting/moq-transport-22 bench series stop. They measured nothing after #8444.
Caused by
moq-dev/moq#8444 - removed moq-transport's in-band AUTH but left the auth bench running admission and waiting rounds on moq-transport-22.
Full session bench on main, same flags: 460 cells finish, exit 0.
just check passes.
After merging main (moq-dev/moq#8516's sync auth::Handle::add, adopting its added helper in waiting): the auth bench builds, all 45 cells finish with the Nightly flags, and just check passes.
Follow-ups
None.
Models
Size: M
Implementer: Claude Code, claude-opus-5-5, medium effort
Implementer: Claude Code, claude-opus-5-5, high effort (iterate, XS)
Score: 9/10, Restricting admission and waiting benchmarks to lite-07 removes obsolete AUTH waits while retaining request-token coverage; source review found no actionable defects, though builds and tests were not run as instructed.
moq-transport dropped in-band AUTH in #8444, so a token added there resolves
at once and no AUTH request reaches the peer. The admission and waiting
groups still ran on moq-transport-22 and waited forever for that request,
hanging Nightly's Rust bench targets before the session bench.
The session_delivery_compression hang this quest tracked was the base build
of the 11-10 Nightly, which predates #8352; it is already fixed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated
changed the title
session_delivery_compression finishes on moq-lite-07
fix(net): the auth bench presents in-band tokens only on lite-07
Nov 12, 2026
No actionable comments were generated in the recent review.
Walkthrough
The benchmark hang note was removed. The auth benchmark setup now fixes the session protocol to moq-lite-07-wip. Admission and waiting benchmarks run only for that version; their workload matrices and timing settings remain.
Merge Risk: Minimal · up to 8f15e
This change only adjusts benchmark configuration and removes a documentation note. It has no production runtime impact and carries no actionable merge risk.
Pre-merge checks: 4
Check name
Status
Explanation
Title check
The title names the auth bench change: in-band tokens are now presented only on lite-07. The diff confirms that admission and waiting benchmarks now run only on moq-lite-07-wip, with pair() losing its…
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Description check
The description is specific and related to the changeset. It explains the diagnosis of the auth bench hang caused by #8444 and the fix that restricts admission and waiting benchmarks to moq…
Full details: Title check
Explanation
The title names the auth bench change: in-band tokens are now presented only on lite-07. The diff confirms that admission and waiting benchmarks now run only on moq-lite-07-wip, with pair() losing its version parameter. The title covers the main change, though it does not mention the quest deletion, which is a minor part of the changeset.
Full details: Description check
Explanation
The description is specific and related to the changeset. It explains the diagnosis of the auth bench hang caused by #8444 and the fix that restricts admission and waiting benchmarks to moq-lite-07-wip in rs/moq-net/benches/auth.rs. It also lists the quest deletion, testing performed, and impact on bench series.
Finishing Touches
Simplify code
Commit to this branch
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
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.
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Organization UI
Review profile: CHILL
Plan: Advanced
Run ID: 4db62e3a-784f-4102-b6d5-52b9d08521ff
Commits
Reviewing files that changed from the base of the PR and between f3de231 and 8f15ed2.
Files selected for processing: 2
quest/m0/lite07-compression-bench-hang.md
rs/moq-net/benches/auth.rs
Files with no reviewable changes: 1
quest/m0/lite07-compression-bench-hang.md
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 0 remain after this review.
The reason will be displayed to describe this comment to others. Learn more.
✅ No new issues found.
Reviewed changes
Auth bench pinned to lite-07 — pair() drops its Version parameter and builds every session from the new INBAND const (moq-lite-07-wip), documented as the only version whose peers present tokens in band.
admission and waiting no longer sweep moq-transport-22 — both groups run only the lite-07 cells under their existing names (auth/moq-lite-07-wip, auth/waiting/moq-lite-07-wip), so the series that hung after #8444 dropped still reports; the cell bodies are otherwise unchanged.
Quest cleanup — deletes quest/m0/lite07-compression-bench-hang.md and its backlink from quest/m0/js-subscribe-drop-hang.md, with no dangling references left under quest/, doc/, or .github/.
The diagnosis checks out in the source: auth::Attached::offer returns Some(Ok(())) for a session with supported=false, requests=true, so Handle::add() resolves at once on moq-transport and no AUTH request reaches the peer, which is exactly what admission (waiting on requests.next()) and waiting (its is_pending assert) could not survive. lite::Version::has_auth is true only for Lite07, so restricting to INBAND loses no lite coverage, and renewal/request_tokens keep their moq-transport request-token coverage through publisher(). rustfmt --edition 2024 --check passes on the changed bench.
The reason will be displayed to describe this comment to others. Learn more.
✅ No new issues found.
Reviewed changes
Reviewed the two main merges that landed since the prior review at f3de23117, which changed only rs/moq-net/benches/auth.rs (16 insertions, 5 deletions) and removed a now-moot quest edit.
Auth bench migrated to #8516's credential API — every call site now uses main's added(&handle, token) helper in place of the removed async Handle::add() future, including waiting's two pending-token sites. added() is add + answered().await, the same wait the old future performed, so waiting's assert!(poll!(...).is_pending()) still holds until the peer answers and the group still measures the admission wait it is named for.
Quest backlink edit dropped as moot — main (#8520) deleted quest/m0/js-subscribe-drop-hang.md, so the merge no longer touches it; this PR still deletes quest/m0/lite07-compression-bench-hang.md, and no reference to either quest remains in the tree.
rustfmt --edition 2024 --check passes on the bench, and cargo check -p moq-net --benches succeeds at 8f15ed20d.
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
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.
Finishes quest/m0/lite07-compression-bench-hang.md.
Diagnosis
The
session_delivery_compression/moq-lite-07-wip/...hang the quest tracked was already fixed by moq-dev/moq#8352, in the bench harness:b3fbce18. The 11-10 Nightly hung in its base build (BENCH_BASE=previous-nightly, the sameb3fbce18); its own buildcd560bdenever ran.b3fbce18hangs on that cell in Nightly's quick mode. With fix(net): the session bench gives each cell its own runtime and a proxying relay #8352's bench diff applied, all 12 compression cells finish. Currentmainfinishes them, and 15 more loops (also pinned to 1 and 2 CPUs) all finished.with_proxyoff, so a lite-07 viewer was only offered the relay's own claims and never learned the publisher's broadcast.watch()then waited forever. That is documented moq-net behavior (a relay must turn proxy on), so no moq-net change and no merge-gate test is needed. No routing code involved.The 11-11 Nightly then hung earlier, before the session bench, at
auth/moq-transport-22/1/1. It reproduces onmain. moq-dev/moq#8444 dropped in-band AUTH from moq-transport:auth().add()there now resolves at once, and no AUTH request reaches the peer. The bench'sadmissionandwaitinggroups still ran onmoq-transport-22and waited for that request forever. (waiting'sis_pendingassert would also fail.)Changes
rs/moq-net/benches/auth.rs:admissionandwaitingrun only onmoq-lite-07-wip, the one version with in-band AUTH.pair()loses its version parameter.renewal,renewal_one, andrequest_tokensstay on moq-transport-22, since they ride request tokens (AUTHORIZATION TOKEN), which still work.quest/m0/js-subscribe-drop-hang.md.Made without asking: fixed the auth hang here instead of a new quest. It now blocks every later bench in the same job, including the one this quest is about, so the quest's goal can't be observed in Nightly without it.
Impact
Public API: none. Wire: none. The
auth/moq-transport-22andauth/waiting/moq-transport-22bench series stop. They measured nothing after #8444.Caused by
Testing
authbench, Nightly flags (--quick --warm-up-time 0.05 --measurement-time 0.2): all 45 cells finish.sessionbench onmain, same flags: 460 cells finish, exit 0.just checkpasses.auth::Handle::add, adopting itsaddedhelper inwaiting): theauthbench builds, all 45 cells finish with the Nightly flags, andjust checkpasses.Follow-ups
None.
Models
Size: M
Implementer: Claude Code, claude-opus-5-5, medium effort
Implementer: Claude Code, claude-opus-5-5, high effort (iterate, XS)
(Written by Claude Opus 5.5 with high effort)
Review
Rewritten by
quest reviewafter each round.01a1cd21-d542-7eb0-9d0c-52506a7d0db7, round 1Restricting admission and waiting benchmarks to lite-07 removes obsolete AUTH waits while retaining request-token coverage; source review found no actionable defects, though builds and tests were not run as instructed.