-
Notifications
You must be signed in to change notification settings - Fork 108
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
HTTP2 go away at the protocol level lets the request hang #660
Comments
Whether streams will continue is dependent on the "last stream ID" in a GOAWAY. |
So I see this go away frame received on the client side: HTTP2Frame(streamID: HTTP2StreamID(0), payload: .goAway(lastStreamID: HTTP2StreamID(2147483647), errorCode: HTTP2ErrorCode<0x1 ProtocolError>, opaqueData: nil)) I think the relevant RFC section is this:
However, the error code is protocol error and not no error. |
Yeah, this isn't graceful shutdown, it's definitely an error. But PROTOCOL_ERROR doesn't necessarily imply that the connection is lost, merely that a protocol error was committed. If the server wants us to stop talking, it needs to be more emphatic than this. |
We currently ignore the error code of the go away. I think if it is a protocol error we will never receive any further HTTP2Frame on the connection or any stream and need manually cancel all active streams. Maybe this is better handled at the nio http2 level but I'm not sure yet.
Reproducer:
The text was updated successfully, but these errors were encountered: