Repository navigation
quest: triage the 2026-11-06 annexb fuzz finding - #8111
Conversation
Quest-Claim: 3429dea5fd205594
The scuffle-av1 UVLC overflow was already fixed by #8042, which committed the input. Record it and wait on approval to report it upstream. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
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 27 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. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed a3c52b2 against base ce0a4f0. No actionable findings in the README update.
The Nightly annexb log records the scuffle-av1 utils.rs:24 overflow and matching crash filename. #8042 merged after that run; the bounded timing guard and regression-file replay path remain present. Annexb was the only failing Fuzz job, supporting the changed epic's media-fuzz triage. The epic remains open for a green scheduled run and preserves approval before upstream outreach.
Scope clarification: the PR body's opening 'failed only Fuzz (annexb)' should be read as the fuzz subset; the entire Nightly had unrelated non-fuzz failures. The changed README is correctly scoped.
Verification limits: GitHub-only source/log review. No test replay or hardware checks. Binary regression byte identity was not independently verified through the text connector. Exact-head Check is still in progress: https://github.com/moq-dev/moq/actions/runs/42327567589.
(Written by review (OpenAI))
There was a problem hiding this comment.
ℹ️ Minor suggestions only.
Reviewed changes
This run reviewed the quest-only triage record for the 2026-11-06 Nightly annexb finding, checked against the run log, #8042, and scuffle-av1 0.1.4.
- Annexb finding recorded — adds the 2026-11-06 scuffle-av1
read_uvlcoverflow to the epic's triage list, citing #8042 as the fix that merged after the run with the input committed, and noting the other fuzz targets passed. - Upstream report wait — adds a
## Waitingitem asking the maintainer to approve filing the overflow on ScuffleCloud/scuffle, which has no issue for it.
ℹ️ The PR description overstates the 11-06 run's failure scope
The description says the Nightly "failed only Fuzz (annexb)", but that run failed 14 jobs, including Media (firefox player), Audio quality, and Nightly (OBS). The README bullet's "the other targets passed" is correctly scoped to the fuzz jobs, so only the description needs the same scoping.
Technical details
# Scope the failure claim to the fuzz targets
## Affected sites
- PR description, first Summary bullet — "which failed only Fuzz (annexb)".
## Evidence
- `gh api 'repos/moq-dev/moq/actions/runs/42236107954/jobs?per_page=100' --jq '[.jobs[] | select(.conclusion=="failure") | .name]'` returns 14 names: `Media (firefox player)`, `Audio quality`, `Nightly (Relay session benchmarks)`, `Tests (test resume-model)`, `Nightly (Rust coverage)`, `Nightly (Rust benchmark tests)`, `Tests (rs miri)`, `Nightly (OBS)`, `Nightly (Browser benchmark smoke)`, `ietf-conformance / moxygen`, `Nightly (OBS TSan)`, `Tests (gate)`, `Fuzz (annexb)`, `features / Features (rs features)`.
- Of the 22 fuzz jobs, only `Fuzz (annexb)` failed.
## Required outcome
- The description says the run's fuzz targets were otherwise green (or that only that fuzz target failed), so the epic's record is not read as the whole Nightly having been green apart from `annexb`.deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
ℹ️ The link scoping fix is correct; one description nit remains.
The new commit resolves the prior inline concern: the heading now scopes #7961 to 2026-11-05 and links #8042 with this triage for 2026-11-06, so each link matches the dates it covers.
The PR description still says the 11-06 Nightly "failed only Fuzz (annexb)", but that run failed 14 jobs, including Media (firefox player), Audio quality, and Nightly (OBS); only among the fuzz jobs did just Fuzz (annexb) fail. Scoping the sentence to the fuzz targets would match the README's "the other targets passed".
deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

Summary
Triage of the scheduled Nightly on 2026-11-06, which failed only
Fuzz (annexb).attempt to add with overflowatscuffle-av1-0.1.4/src/obu/utils.rs:24:read_uvlccounts leading zeros in au8, and an AV1 sequence header whose picture interval has 256 leading zeros overflows it.fbef872. It committed this exact 148-byte input asregressions/annexb/crash-512747cda72c7fdde13583798f5f80e6807a9e69(byte-identical to the run's Base64).read_uvlchas one caller in scuffle-av1 (seq.rs:176, timing info), and fix(mux): reject overflowing AV1 picture intervals #8042 guards that path, so no code change is needed here.## Waitingitem, because no upstream ScuffleCloud/scuffle issue exists for scuffle-av1. The epic stays: no Nightly has run every media target green yet.Impact
Quest docs only. No public API or wire changes.
Checks
cargo test -p moq-mux --features fuzz --lib fuzz::tests::regressionson main plus this branch: passed, replaying the committed input.quest checkandquest check --base origin/main: ok.Choices made without asking
Recorded wait (in the epic's
## Waiting)This PR records the wait, so the wait does not block merging. Maintainer: approve filing an upstream issue on ScuffleCloud/scuffle for the scuffle-av1
read_uvlcu8leading-zero overflow, as was done for scuffle-h265 (ScuffleCloud/scuffle#653) and scuffle-expgolomb (ScuffleCloud/scuffle#654). Agents need approval to post outsidekixelatedandmoq-dev. Recommend approving. Draft: "read_uvlc(src/obu/utils.rs) counts leading zeros in au8; a sequence header whosenum_ticks_per_picture_minus_1has 256+ leading zero bits panics with add-overflow in debug builds (and wraps in release). The AV1 spec caps the value at 2^32 - 2 (31 leading zeros), so the loop can stop at 32 zeros and return an error." Done once the issue is filed and linked in the epic.Follow-ups
None.
Review
Skipped for head
7373e6d: the diff is quest prose recording a triage, with no code; the last change only scopes the README's PR links to their dates.quest check --base origin/mainpasses, and the claims are checked above against the run log, moq-dev/moq#8042, and scuffle-av1 0.1.4's source.🤖 Generated with Claude Code
(Written by Claude Opus 5.5)