Skip to content

fix(net): the auth bench presents in-band tokens only on lite-07 - #8524

Merged
kixelated merged 4 commits into
mainfrom
quest/m0/lite07-compression-bench-hang
Nov 12, 2026
Merged

kixelated merged 4 commits into
mainfrom
quest/m0/lite07-compression-bench-hang

Conversation

@kixelated

@kixelated kixelated commented Nov 11, 2026 •

Copy link
Copy Markdown
Collaborator

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:

  • 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.
  • Locally, b3fbce18 hangs 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. Current main finishes them, and 15 more loops (also pinned to 1 and 2 CPUs) all finished.
  • 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.

Testing

  • auth bench, Nightly flags (--quick --warm-up-time 0.05 --measurement-time 0.2): all 45 cells finish.
  • 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)

(Written by Claude Opus 5.5 with high effort)

Review

Rewritten by quest review after each round.

  • Reviewer: Codex, gpt-6.1-sol, medium effort
  • Session: 01a1cd21-d542-7eb0-9d0c-52506a7d0db7, round 1
  • Head: f3de231
  • Base: origin/main at 284c977
  • 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.
  • Findings: none

kixelated and others added 2 commits November 11, 2026 14:00
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 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
@kixelated
kixelated marked this pull request as ready for review November 12, 2026 00:22
@coderabbitai

coderabbitai Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

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: Passed 4

Check name Status Explanation
Title check Passed 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 Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed 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.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • 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.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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.

Pullfrog  | View workflow run | Using deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

…ession-bench-hang

# Conflicts:
#	rs/moq-net/benches/auth.rs
@kixelated
kixelated added this pull request to the merge queue Nov 12, 2026

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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.

Pullfrog  | View workflow run | Using deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

Merged via the queue into main with commit dec221e Nov 12, 2026
8 checks passed
@kixelated
kixelated deleted the quest/m0/lite07-compression-bench-hang branch November 12, 2026 03:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant