Skip to content

QUIC: don't prefetch a datagram batch when sending on a non-current path - #194

Merged
kkuk24 merged 1 commit into
mainfrom
kkuk/fix-non-current-path-frame-leak
Oct 2, 2026
Merged

kkuk24 merged 1 commit into
mainfrom
kkuk/fix-non-current-path-frame-leak

Conversation

@kkuk24

@kkuk24 kkuk24 commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Sending on a path other than the current one carries only that path's items (PATH_CHALLENGE, PATH_RESPONSE) and builds a single packet, but it fetched a batch from the current path whenever stream data was queued. The unused datagrams were released without being finalized. But we don't need to fetch a batch here. Leave the batch empty so buildSinglePacketForKeyState fetches one datagram from the path being sent on.

Sending on a path other than the current one carries only that path's
items (PATH_CHALLENGE, PATH_RESPONSE) and builds a single packet, but it
fetched a batch of up to 10 datagrams from the current path whenever
stream data was queued. The unused datagrams were released without being
finalized, which traps in Frame.deinit. Leave the batch empty so
buildSinglePacketForKeyState fetches one datagram from the path being
sent on.
@kkuk24 kkuk24 added the 🔨 semver/patch No public API change. label Oct 1, 2026
@kkuk24
kkuk24 merged commit 84c0fa7 into main Oct 2, 2026
36 of 39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🔨 semver/patch No public API change.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants