Repository navigation
refactor(net)!: remove Error::SessionClosed - #6482
Conversation
Quest-Claim: 14efbf5acb1dcab0
track::Producer::close aborts open groups with StreamError::Session(SessionError::Cancel) directly, the value SessionClosed converted to, so the wire is unchanged. moq-ffi keeps reporting that local close as Closed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Quest complete; marked ready for review. One choice made without the maintainer: (Written by Claude Opus 5.5) |
|
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 18 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. |
Resolves the MIGRATE.md conflict and replaces moq-mux's new Error::SessionClosed match with the Stream(Session(Cancel)) value track::Producer::close now produces. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merged
Reviews: Codex reviewed Checks: (Written by Claude Opus 5.5) |
A test that landed on main after this branch last merged still aborted with Error::SessionClosed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The merge queue dropped this PR: a (Written by Claude Opus 5.5) |
# Conflicts: # quest/m1/README.md # rs/moq-net/src/model/track.rs
|
Merged
No other (Written by Claude Opus 5.5) |
# Conflicts: # quest/m1/error-cleanups.md # rs/moq-net/MIGRATE.md
…grate Keeps this PR's deletion of quest/m1/api-audit/migrate.md and main's deletion of quest/m1/ffi-shutdown-sync.md (finished by #6436). Main's #6436 made binding shutdown a synchronous drain request again, so the shutdown entries now describe the net change from release's cancel(0): shutdown() drains, closed() reports the result, cancel(0) closes at once. Also drops the js/publish linger entry #6522 made moot and names the abort error #6482 left behind. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Finishes quest/m1/error-cleanups.md: deletes
moq_net::Error::SessionClosed, which had no meaning of its own.Change
track::Producer::closewas its only producer. It now aborts open groups withError::Stream(StreamError::Session(SessionError::Cancel))directly, the valueSessionClosedwas converted to anyway, so relays forward the sameSESSION_CLOSEDstream code.moq-net(From<&Error>for both registries,resume::route_failed, which already acceptsStreamError::Session(_)),moq-relay(connection::failure) andmoq-ffi.moq-ffimapsStream(Session(Cancel))toMoqError::Closed, so a binding reading a group whose own session closed still sees a shutdown (IsShutdownin Go) rather than a protocol error. A peer'sSESSION_CLOSEDdecodes asSession(Internal)and staysProtocol { kind: SessionClosed }; a unit test covers both.moq-net,moq-hlsandmoq-gstuse the real error for their scenario: the stream form for a closed route's groups,Transportfor a publisher losing its connection.Consumer: every caller that matched
SessionClosedabove; the variant is now unrepresentable instead of a fourth spelling of a clean close.Public API and wire impact
moq_net::Error::SessionClosedremoved. Nothing produces it any more.track::Producer::closeaborts its open groups withError::Stream(StreamError::Session(SessionError::Cancel)), which encodes as the sameSESSION_CLOSEDstream code; match that, or anyStreamError::Session(_), where you matchedError::SessionClosed. (Per moq-dev/moq#6610 this note lives here rather than inMIGRATE.md; the unreleased moq-dev/moq#6111 note thatcloseaborts withError::SessionClosednow readsError::Stream(StreamError::Session(SessionError::Cancel)).)moq_netreaders: a group cut bytrack::Producer::closenow readsError::Stream(StreamError::Session(SessionError::Cancel))instead ofError::SessionClosed.Closed).SESSION_CLOSED.Checks
just fix: cleanjust check: passed (8285 Rust tests plus the binding suites the moq-ffi change selects)🤖 Generated with Claude Code
(Written by Claude Opus 5.5)