-
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
CI test failure: Connection handshake was canceled due to the configured timeout #99074
Comments
Tagging subscribers to this area: @dotnet/ncl Issue Details
Build InformationBuild: https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_build/results?buildId=583082 Error MessageFill the error message using step by step known issues guidance. {
"ErrorMessage": "System.Net.Quic.QuicException : Connection handshake was canceled due to the configured timeout of 00:00:10 seconds elapsing.",
"ErrorPattern": "",
"BuildRetry": false,
"ExcludeConsoleLog": false
}
|
@rzikm do you think this might be related to your recent change in cert validation? |
It is possible let me have a look |
Investigation notes: Still curious why this failure didn't show up on the original PR |
It's likely it didn't run on that set up at all. From our perspective, successful run of the test vs didn't run at all is really almost impossible to distinguish. |
Looks like microsoft/msquic#4145 was not enough, We will have to disable the test for now, as this will take some time to fix. |
I think I figured out what is happening, and it's more complicated than I thought. According to the traces and packet captures I collected, following happens around the certificate validation
|
@rzikm Could you also similarly describe what the problem is and how it manifests (not just the root cause)? |
One way to look at it saying this is a data race between |
I understand this, I was more interested in how this translates to Handshake timeout on the other side. |
There's an underlying bug in MsQuic related to microsoft/msquic#4132. MsQuic should not attempt to send application CONNECTION_CLOSE before handshake completes microsoft/msquic#4166
Server is not allowed to process 1RTT packets before the handshake completes (for server, this means "before client accepts the certificate" by sending Finished message on TLS level). So the server receives 1RTT message with CONNECTION_CLOSE, but is waiting until handshake finishes so it is allowed to process it, and this times out |
This issue will be resolved in 2.4 release of MsQuic. |
This issue is fixed with msquic 2.4 release but looks like we're still disabling this test against msquic versions which is lower than 2.4 with
I believe we can do the first option for the short term, but second option might be more reliable option here (has some perf downsides). I think we were going to discuss it, right? @rzikm Also deleting |
Last time I mentioned it in the team the feeling was to guarantee correct behavior even at cost of some perf. Since MsQuic 2.4.1+ is available, I don't expect bumping the required version for the feature is going to adversely affect anyone. |
Build Information
Build: https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_build/results?buildId=583082
Build error leg or test failing: System.Net.Quic.Tests.MsQuicTests.CertificateCallbackThrowPropagates
Pull request: #99033
Error Message
Fill the error message using step by step known issues guidance.
Known issue validation
Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=583082
Error message validated:
[System.Net.Quic.QuicException : Connection handshake was canceled due to the configured timeout of 00:00:10 seconds elapsing.
]Result validation: ✅ Known issue matched with the provided build.
Validation performed at: 2/28/2024 7:50:19 PM UTC
Report
Summary
The text was updated successfully, but these errors were encountered: