-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[QUIC&H/3] QuicConnection handshake timeout #104358
Conversation
Tagging subscribers to this area: @dotnet/ncl |
I think this should be fine, because in the end |
Setting the timeout to match Given that we don't have a default |
What original timeout? |
Some tests in CI are timing out on HandshakeTimeout. Before this PR, there's no way to change the default 10 seconds through |
What I meant was |
That doesn't apply to connection creation. Also not present when using message invoker directly. |
@@ -123,6 +123,7 @@ public static async ValueTask<QuicConnection> ConnectQuicAsync(HttpRequestMessag | |||
MaxInboundBidirectionalStreams = 0, // Client doesn't support inbound streams: https://www.rfc-editor.org/rfc/rfc9114.html#name-bidirectional-streams. An extension might change this. | |||
MaxInboundUnidirectionalStreams = 5, // Minimum is 3: https://www.rfc-editor.org/rfc/rfc9114.html#unidirectional-streams (1x control stream + 2x QPACK). Set to 100 if/when support for PUSH streams is added. | |||
IdleTimeout = idleTimeout, | |||
HandshakeTimeout = handshakeTimeout, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: this could just be Timeout.InfiniteTimeSpan
The cancellationToken passed to ConnectAsync
is already backed by ConnectTimeout
. Making the handshake timeout the same value may make it a coin flip whether you see a handshake timeout vs. connect timeout exception.
I'm still waiting for more data/info on this. As the 10 seconds should be enough even in CI. So the question is why are we seeing the handshake timeouts? We need to understand the problem better. Either way, I'm making this draft for now, potentially closing in the future. |
Draft Pull Request was automatically closed for 30 days of inactivity. Please let us know if you'd like to reopen it. |
Increased
QuicConnection
handshake timeout in tests.Optional: propagated
SocketsHttpHandler.ConnectTimeout
toQuicConnectionOptions.HandshakeTimeout
. Note that since the default is "infinite", this might lead to hanging connection establishment. So if there are any concerns, I'll revert this part of the change.