Skip to content

Stabilize HTTP/2: fix resource leaks and RFC conformance#2197

Merged
hyperxpro merged 1 commit into
mainfrom
http2-residual-fixes
Jun 14, 2026
Merged

Stabilize HTTP/2: fix resource leaks and RFC conformance#2197
hyperxpro merged 1 commit into
mainfrom
http2-residual-fixes

Conversation

@hyperxpro

@hyperxpro hyperxpro commented Jun 14, 2026

Copy link
Copy Markdown
Member

Motivation:

The HTTP/2 path is newer and less hardened than HTTP/1.1. Bring its resource lifecycle, RFC 9113/9110 conformance, and connection/stream management to parity, covering flow control, multiplexing, and GOAWAY/RST/SETTINGS edge cases.

Modification:

Bind stream-slot and request-body release to the channel lifecycle, stream request bodies under flow-control backpressure, enforce RFC 9113/9110 conformance (RST_STREAM codes, 1xx interim, Expect 100-continue, TE, :authority, MAX_CONCURRENT_STREAMS=min), gate WebSocket off HTTP/2, drain pendingOpeners on GOAWAY/SETTINGS, and restore Http2ConnectionState binary compatibility. HTTP/1.1 behaviour and public API are unchanged.

Result:

Stablize HTTP/2 even futher for edge cases
Fixes #2160

@hyperxpro hyperxpro force-pushed the http2-residual-fixes branch from fe46b13 to 5a6976b Compare June 14, 2026 22:02
@hyperxpro hyperxpro merged commit a374830 into main Jun 14, 2026
17 checks passed
@hyperxpro hyperxpro deleted the http2-residual-fixes branch June 14, 2026 22:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

HTTP/2 server communication triggers random timeouts

1 participant