Repository navigation
quest: fold srt-end into the m2 srt-protocol driver - #6685
Conversation
Quest-Claim: 25d67b283224859f
…meout Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 7 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. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Merging d21bc6c with the maintainer's approval. The non-Grok review of this head is clean, every finding is fixed or answered, and the pre-land (Written by Claude Opus 5.5) |
Removes quest/m1/broadcast-lifecycle/srt-end.md and moves its goal into SRT on the shared socket, which already plans for moq-srt to drive sans-io srt-protocol directly. The maintainer chose this route.
Why
srt-tokio 0.4.4 (the latest release, identical to upstream
main, unpushed since 2024-05) cannot tell a peer shutdown from a silent peer:SrtSocket'sStreamimpl maps every item toOk, and its task returns().Shutdowncontrol packet, the peer idle timeout, and a UDP or listener channel error all move the receiver toDrainthenClosed.ConnectionStatusis private and keeps no cause.serve_publishseesNonefor all three.SocketStatisticshas no shutdown counter and is not sent again at close.A moq-srt driver over srt-protocol sees every inbound packet, so a close without a valid peer Shutdown can abort. It also takes
nowas input, which makes the mocked-clock tests possible; srt-tokio reads std's clock directly. The broadcast ends in both cases today, so the bug's cost (a finished broadcast keeps its retention linger, an aborted one does not) does not justify pulling that driver into m1.Nothing was posted upstream. What upstream would need instead: srt-protocol records the close cause on
DuplexConnection, and srt-tokio yieldsErr(TimedOut/ConnectionAborted) beforeNonefor anything but a peer shutdown or local close.Changes
quest rmof srt-end, which drops it from the broadcast-lifecycle epic's Required list.Clientpull, the reason above, and mocked-clock tests.Relation to moq-dev/moq#6660
None: no code changes here, and #6660 does not touch moq-srt. srt-demux will map its clean end onto whatever end API is on main when it lands.
Impact
Public API: none. Wire: none.
Checks
quest check --base origin/mainpasses. No Rust changed, sojust checkwas not run.🤖 Generated with Claude Code
(Written by Claude Opus 5.5)