x/net/http2: flow control lost if server handler calls req.Body.Close() #42983
Labels
FrozenDueToAge
WaitingForInfo
Issue is not actionable because of missing required information, which needs to be provided.
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Don't know; I expect it probably does.
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
I noticed that if an HTTP/2 server calls req.Body.Close() and then data are received, all the flow control associated with that data are not returned to the client. If this keeps happening, eventually the connection will hang because the client runs out of quota to send to the server.
This may just be a case of "don't do that, then". I think this issue is somewhat similar to #16481 .
What did you expect to see?
Ideally, I'd expect the above program not to eventually hang. I believe the leak is in
func (p *http2pipe) Write(d []byte) (n int, err error)
. Specifically in:The flow control is never returned.
What did you see instead?
It eventually hangs.
The text was updated successfully, but these errors were encountered: