Skip to content

Fix HTTP/2 codec flow control re-entrancy - #6359

Merged
vietj merged 1 commit into
5.1from
fix/http2-codec-flow-control-reentrance-5.1
Sep 14, 2026
Merged

vietj merged 1 commit into
5.1from
fix/http2-codec-flow-control-reentrance-5.1

Conversation

@vietj

@vietj vietj commented Sep 14, 2026

Copy link
Copy Markdown
Member

Motivation:

VertxHttp2ConnectionHandler.writeData() explicitly called
writePendingBytes() after encoding a data frame. When a stream's
onWritabilityChanged() drained its outbound queue synchronously, the
resulting writeData() re-entered the flow controller, triggering
cascading writability notifications across other streams.

Modifications:

Remove the explicit writePendingBytes() call from writeData(). It is
redundant: flush() already calls writePendingBytes() with built-in
re-entrancy protection (inFlush/flushAgain guard).

Result:

No more flow controller re-entrancy during writability notifications.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

Motivation:

VertxHttp2ConnectionHandler.writeData() explicitly called
writePendingBytes() after encoding a data frame. When a stream's
onWritabilityChanged() drained its outbound queue synchronously, the
resulting writeData() re-entered the flow controller, triggering
cascading writability notifications across other streams.

Modifications:

Remove the explicit writePendingBytes() call from writeData(). It is
redundant: flush() already calls writePendingBytes() with built-in
re-entrancy protection (inFlush/flushAgain guard).

Result:

No more flow controller re-entrancy during writability notifications.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vietj vietj modified the milestones: 5.1.9, 5.2.0 Sep 14, 2026
@vietj vietj added the bug label Sep 14, 2026
@vietj vietj self-assigned this Sep 14, 2026
@vietj vietj modified the milestones: 5.2.0, 5.1.9 Sep 14, 2026
@vietj
vietj merged commit 670d626 into 5.1 Sep 14, 2026
8 checks passed
@vietj
vietj deleted the fix/http2-codec-flow-control-reentrance-5.1 branch September 14, 2026 09:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant