You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 9eba04c
Browse filesBrowse the repository at this point in the historyBrowse files
fix: end JS subscriptions on TrackReader close (#447)
* fix: end JS subscriptions on TrackReader close
* fix: align JS track close with Go and reject late groups
* docs: note JS TrackReader close fix
* fix(moq-web): untrack a GroupReader whose stream ends with any read error
TrackReader tracks the GroupReaders it hands out until they end, so close()
can cancel the active ones. A GroupReader reported its end only at EOF, so a
group stream reset by the publisher, or failing another read, stayed tracked
until the subscription closed: on a long-lived subscription the set grew
with every reset group. readFrame now reports the end on any stream read
error. An oversized length or a sink error leaves the stream open, so it
stays tracked until the caller cancels it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: OkutaniDaichi0106 <132345842+OkutaniDaichi0106@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
21
21
-**webtransport-go:** bumped to `v0.13.0-okdaichi.2`. The session context now ends with the close error as its cause (okdaichi/webtransport-go#9). A dialed session's QUIC connection now stays open until its close capsule can arrive, instead of closing at once and losing it (#11). The fork also syncs with upstream v0.13.0, and quic-go goes to v0.63.0.
22
22
-**`moqt.Cause`** converts that `*webtransport.SessionError` into the same `SessionError` it gives for native QUIC. The WebTransport wrapper passes the session's context through unchanged.
23
23
-**On the server,** a WebTransport session still takes its values from the upgrade request. It now ends with the transport, or with the connection's `ConnContext` context. Before, the request's context could end first, with no cause, and hide the close reason. Cancelling `ConnContext`'s context still ends the session, as since v0.20.1.
24
+
-**@qumo/moq: closing a `TrackReader` now ends its subscription.** A normal
25
+
`close()` sends FIN on the subscribe stream and cancels queued and active
26
+
group streams. `closeWithError()` cancels them with the appropriate error
27
+
codes, and late group streams are cancelled instead of left unread.
0 commit comments