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

GOAWAY initiating a graceful shutdown can carry a huge stream ID #3343

Merged
merged 7 commits into from Jan 17, 2020
13 changes: 6 additions & 7 deletions draft-ietf-quic-http.md
Expand Up @@ -729,13 +729,12 @@ requests on another connection. A server that is attempting to gracefully shut
down a connection SHOULD send an initial GOAWAY frame with the last Stream ID
set to the maximum value allowed by the concurrency control of QUIC for the
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
set to the maximum value allowed by the concurrency control of QUIC for the
set to the maximum value allowed by the concurrency control of QUIC for

kazuho marked this conversation as resolved.
Show resolved Hide resolved
client-initiated, bidirectional streams (see section 4.5 of {{QUIC-TRANSPORT}})
kazuho marked this conversation as resolved.
Show resolved Hide resolved
or any value above that, and SHOULD forbid the QUIC transport from granting
additional concurrency credits thereafter. This signals to the client that a
shutdown is imminent and that initiating further requests is prohibited. After
allowing time for any in-flight requests (at least one round-trip time), the
server MAY send another GOAWAY frame with an updated last Stream ID. This
ensures that a connection can be cleanly shut down without causing requests to
fail.
or any value above that, and SHOULD NOT grant any more concurrency credit at the
Copy link
Member

Choose a reason for hiding this comment

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

I would say "could request that the transport not grant any more ..." as this is does not need to carry normative force. But that's not text you changed, so I'll leave that for @MikeBishop to sort out.

Copy link
Member Author

Choose a reason for hiding this comment

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

👍 FWIW, I agree to what @martinthomson states.

Copy link
Member Author

Choose a reason for hiding this comment

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

PS. I think there is a bigger issue here, see #3341 (comment).

transport layer thereafter. This signals to the client that a shutdown is
imminent and that initiating further requests is prohibited. After allowing
time for any in-flight requests (at least one round-trip time), the server MAY
send another GOAWAY frame with an updated last Stream ID. This ensures that a
connection can be cleanly shut down without causing requests to fail.

Once all accepted requests have been processed, the server can permit the
connection to become idle, or MAY initiate an immediate closure of the
Expand Down