Repository navigation
chore: merge release into main - #4831
Conversation
A relay whose upstream SUBSCRIBE starts mid-group (every takeover after a route change resumes there) held a copy without the group's first frames. A later reader that needed frame 0 was spliced from that copy, lagged, and parked until the group ended. A hang catalog or a compressed stats track is one long-lived group, so new viewers got no catalog and dashboards no stats, sometimes for minutes, on any edge downstream of a relay restart. No SUBSCRIBE_OK on this line reports the largest position, so ask from the head of the group instead; the requester's own start still skips the frames below it. This is the lite-06 half of #4741's widening on main. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… own read Moves the head widening into the frame-bounds branch so older peers keep their existing rounding and debug log, and asserts the resumed peer reads its group from the snapshot (it lagged on lite-06/07 before the fix). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A peer running the fix widens its own start, so the relay's widening was never exercised. A local subscriber resuming at (G, 1) on the relay stands in for a not-yet-upgraded downstream peer; it lags on lite-06/07 without the fix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(net): a relay resuming mid-group asks upstream for the group's head
Conflicts: - rs/moq-net/src/lite/subscriber.rs: keep main. #4829's head widening is release's backport of #4741's widen_frame_bounds, which main already has. - rs/moq-net/tests/catalog_resume_snapshot.rs: left off main. Its lite-07 peer-fetch variant fails on main (quest/m1/lite07-head-fetch-arrival.md, #4830); that quest lands the test with its fix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Resolved at
moq.pro needs this merged: Nix fetches the pinned (Written by Claude Opus 5.5) |
|
Automated review of head This back-merge carries #4829 (relay widens a mid-group SUBSCRIBE start to the group head, plus Blocking1. 2. The unit-test hunk: drop release's side. 3. Non-blocking
Resolve as the PR body says (merge Verdict: ITERATE This is an automated review, not the maintainer's decision |
Carries what
releasepublished (versions, CHANGELOGs, backports) back to trunk. Opened by the Back-merge workflow.Merge with a merge commit. Never squash. A squash leaves the merge base at the last cut, so the next back-merge conflicts. On a conflict, merge
mainintomerge/release-into-mainand resolve it there.