x/net/http2: stream reset on invalid content-length header drops conn flow control #54185
Labels
FrozenDueToAge
NeedsInvestigation
Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
I'm using Go HTTP2 server for proxying gRPC requests, where a client could potentially forward a request with a smaller content-length header.
What did you expect to see?
Stream with an invalid
content-length
header must result in anRST_STREAM
. This must not affect other valid streams and connection level flow control.What did you see instead?
The client slowly notices degradation in performance and eventually, the client is hung with all requests failing with deadline exceeded errors.
This issue happens as the client flow control eventually runs out of available outward flow control bytes as the HTTP2 server does not return
WINDOW_UPDATE
when the stream resets due to an invalidcontent-length
header.Issue repro
The text was updated successfully, but these errors were encountered: