Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix HTTP2 connections with multiple streams stalling #193

Merged

Conversation

patrickbkr
Copy link
Member

HTTP2 knows a stream and connection flow-control window. Both windows need to be respected. A logic was put in place, to not update the window sizes when the stream that sent the data was closed. That's fine. But we do need to update the global window, otherwise the global window size permanently shrinks by that amount. When reusing a connection many times, this shinks the window size down to zero over time, effectively stalling the connection.

HTTP2 knows a stream and connection flow-control window. Both windows need
to be respected. A logic was put in place, to not update the window sizes
when the stream that sent the data was closed. That's fine. But we do need
to update the global window, otherwise the global window size permanently
shrinks by that amount. When reusing a connection many times, this shinks
the window size down to zero over time, effectively stalling the
connection.
Copy link
Contributor

@peelle peelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@patrickbkr
Copy link
Member Author

Cool!

@patrickbkr patrickbkr merged commit 39022ce into croservices:master Aug 9, 2024
2 checks passed
@patrickbkr patrickbkr deleted the http2-multi-stream-window-updates branch August 9, 2024 10:24
@patrickbkr
Copy link
Member Author

patrickbkr commented Aug 9, 2024

@peelle Are you OK with me giving you a commit bit in the croservices org? - Update: I've sent an invite.

@peelle
Copy link
Contributor

peelle commented Aug 10, 2024

@peelle Are you OK with me giving you a commit bit in the croservices org? - Update: I've sent an invite.

Thank you for the invite. I've accepted. I'm excited to help y'all out.

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.

2 participants