Skip to content

fix: Account for connection flow control on DATA after GOAWAY#895

Open
ArniDagur wants to merge 1 commit intohyperium:masterfrom
ArniDagur:fix/goaway-data-connection-window-leak
Open

fix: Account for connection flow control on DATA after GOAWAY#895
ArniDagur wants to merge 1 commit intohyperium:masterfrom
ArniDagur:fix/goaway-data-connection-window-leak

Conversation

@ArniDagur
Copy link
Copy Markdown
Contributor

See:

When h2 sends GOAWAY and then receives DATA on a stream above the GOAWAY last_stream_id, the data is correctly ignored, but flow control capacity is leaked at the connection level. This can cause an issue with streams lower than last_stream_id being stalled forever.

See:
* Golang: https://github.com/golang/net/blob/0a81d5af911d6b2c1ad6c271c6aa2fe09747fd75/http2/server.go#L1440-L1453
* nghttp2: https://github.com/nghttp2/nghttp2/blob/1f8481251cb28848b45d950de6cad6a1311eedf5/lib/nghttp2_session.c#L6935-L6960

When h2 sends GOAWAY and then receives DATA on a stream above the GOAWAY
`last_stream_id`, the data is correctly ignored, but flow control
capacity is leaked at the connection level. This can cause an issue with
streams lower than `last_stream_id` being stalled forever.
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.

1 participant