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 entering hot loop if app opens a stream before the handshake is complete (amends #551) #562

Merged
merged 1 commit into from
Oct 19, 2023

Conversation

kazuho
Copy link
Member

@kazuho kazuho commented Oct 19, 2023

H2O opens the HTTP/3 control stream when the connection is created. As that happens before the peer grants any stream credit, QUICLY_PENDING_FLOW_OTHERS_BITgets set, and that leads to quicly_get_first_timeout return zero whenever there is space in CWND.

But because write keys for the application packet number space is unavailable, quicly_send cannot make progress.

Hence the hot loop.

This PR fixes quicly_get_first_timeout. The function no longer returns 0 (indicating now) when the write keys for the application packet number space is available.

Amends #551.

…omplete.

H2O opens the HTTP/3 control stream when the connection is created. As that
happens before the peer grants any stream credit, QUICLY_PENDING_FLOW_OTHERS_BITgets set, and that leads to `quicly_get_first_timeout` return zero whenever
there is space in CWND.

But because write keys for the application packet number space is unavailable,
`quicly_send` cannot make progress.

Hence the hot loop.

This PR fixes `quicly_get_first_timeout`. The function no longer returns `0`
(indicating now) when the write keys for the application packet number space is
available.
@kazuho kazuho merged commit aae8e57 into master Oct 19, 2023
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