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

[HTTP/3] MsQuic tests failed massively #56090

Closed
karelz opened this issue Jul 21, 2021 · 5 comments · Fixed by #56097
Closed

[HTTP/3] MsQuic tests failed massively #56090

karelz opened this issue Jul 21, 2021 · 5 comments · Fixed by #56097
Assignees
Labels
area-System.Net.Http test-run-core Test failures in .NET Core test runs
Milestone

Comments

@karelz
Copy link
Member

karelz commented Jul 21, 2021

This has impact on many tests in:

System.Net.Http.Functional.Tests.SocketsHttpHandlerTest_Http3_MsQuic
System.Net.Http.Functional.Tests.SocketsHttpHandlerTest_HttpClientHandlerTest_Headers_Http3_MsQuic
System.Net.Http.Functional.Tests.SocketsHttpHandlerTest_HttpClientHandlerTest_Http3_MsQuic
System.Net.Http.Functional.Tests.SocketsHttpHandler_HttpClientHandler_AltSvc_Test_Http3_MsQuic
System.Net.Http.Functional.Tests.SocketsHttpHandler_HttpClientHandler_Cancellation_Test_Http3_MsQuic

563 failures (121 in Official builds) on 7/21

Example of failure:

System.PlatformNotSupportedException : The 'LocalCertificateSelectionCallback' is not supported by System.Net.Quic.

   at System.Net.Quic.Implementations.MsQuic.Internal.SafeMsQuicConfigurationHandle.Create(QuicClientConnectionOptions options) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/Interop/SafeMsQuicConfigurationHandle.cs:line 54
   at System.Net.Quic.Implementations.MsQuic.MsQuicConnection..ctor(QuicClientConnectionOptions options) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicConnection.cs:line 179
   at System.Net.Quic.Implementations.MsQuic.MsQuicImplementationProvider.CreateConnection(QuicClientConnectionOptions options) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicImplementationProvider.cs:line 19
   at System.Net.Quic.QuicConnection..ctor(QuicImplementationProvider implementationProvider, QuicClientConnectionOptions options) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/QuicConnection.cs:line 44
   at System.Net.Quic.QuicConnection..ctor(QuicImplementationProvider implementationProvider, EndPoint remoteEndPoint, SslClientAuthenticationOptions sslClientAuthenticationOptions, IPEndPoint localEndPoint) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/QuicConnection.cs:line 37
   at System.Net.Http.ConnectHelper.ConnectQuicAsync(HttpRequestMessage request, QuicImplementationProvider quicImplementationProvider, DnsEndPoint endPoint, SslClientAuthenticationOptions clientAuthenticationOptions, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/ConnectHelper.cs:line 112
   at System.Net.Http.HttpConnectionPool.GetHttp3ConnectionAsync(HttpRequestMessage request, HttpAuthority authority, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 863
   at System.Net.Http.HttpConnectionPool.TrySendUsingHttp3Async(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 926
   at System.Net.Http.HttpConnectionPool.DetermineVersionAndSendAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 989
   at System.Net.Http.HttpConnectionPool.SendAndProcessAltSvcAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 1019
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 1038
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/RedirectHandler.cs:line 30
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 527
   at System.Net.Http.Functional.Tests.HttpClientHandlerTest_Headers.<>c__DisplayClass3_0.<<SendAsync_UserAgent_CorrectlyWritten>b__0>d.MoveNext() in /_/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Headers.cs:line 60
--- End of stack trace from previous location ---
   at System.Threading.Tasks.TaskTimeoutExtensions.WhenAllOrAnyFailed(Task[] tasks) in /_/src/libraries/Common/tests/System/Threading/Tasks/TaskTimeoutExtensions.cs:line 55
   at System.Threading.Ta
@karelz karelz added area-System.Net.Http test-run-core Test failures in .NET Core test runs labels Jul 21, 2021
@karelz karelz added this to the 6.0.0 milestone Jul 21, 2021
@dotnet-issue-labeler dotnet-issue-labeler bot added the untriaged New issue has not been triaged by the area owner label Jul 21, 2021
@ghost
Copy link

ghost commented Jul 21, 2021

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

Issue Details

Failures 5/21-7/21 (incl. PRs):

  • 7/21 - 4x Official run + 14x PR (incomplete day)
System.PlatformNotSupportedException : The 'LocalCertificateSelectionCallback' is not supported by System.Net.Quic.

   at System.Net.Quic.Implementations.MsQuic.Internal.SafeMsQuicConfigurationHandle.Create(QuicClientConnectionOptions options) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/Interop/SafeMsQuicConfigurationHandle.cs:line 54
   at System.Net.Quic.Implementations.MsQuic.MsQuicConnection..ctor(QuicClientConnectionOptions options) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicConnection.cs:line 179
   at System.Net.Quic.Implementations.MsQuic.MsQuicImplementationProvider.CreateConnection(QuicClientConnectionOptions options) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicImplementationProvider.cs:line 19
   at System.Net.Quic.QuicConnection..ctor(QuicImplementationProvider implementationProvider, QuicClientConnectionOptions options) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/QuicConnection.cs:line 44
   at System.Net.Quic.QuicConnection..ctor(QuicImplementationProvider implementationProvider, EndPoint remoteEndPoint, SslClientAuthenticationOptions sslClientAuthenticationOptions, IPEndPoint localEndPoint) in /_/src/libraries/System.Net.Quic/src/System/Net/Quic/QuicConnection.cs:line 37
   at System.Net.Http.ConnectHelper.ConnectQuicAsync(HttpRequestMessage request, QuicImplementationProvider quicImplementationProvider, DnsEndPoint endPoint, SslClientAuthenticationOptions clientAuthenticationOptions, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/ConnectHelper.cs:line 112
   at System.Net.Http.HttpConnectionPool.GetHttp3ConnectionAsync(HttpRequestMessage request, HttpAuthority authority, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 863
   at System.Net.Http.HttpConnectionPool.TrySendUsingHttp3Async(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 926
   at System.Net.Http.HttpConnectionPool.DetermineVersionAndSendAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 989
   at System.Net.Http.HttpConnectionPool.SendAndProcessAltSvcAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 1019
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 1038
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/RedirectHandler.cs:line 30
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 527
   at System.Net.Http.Functional.Tests.HttpClientHandlerTest_Headers.<>c__DisplayClass3_0.<<SendAsync_UserAgent_CorrectlyWritten>b__0>d.MoveNext() in /_/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Headers.cs:line 60
--- End of stack trace from previous location ---
   at System.Threading.Tasks.TaskTimeoutExtensions.WhenAllOrAnyFailed(Task[] tasks) in /_/src/libraries/Common/tests/System/Threading/Tasks/TaskTimeoutExtensions.cs:line 55
   at System.Threading.Ta
Author: karelz
Assignees: -
Labels:

area-System.Net.Http, test-run-core

Milestone: 6.0.0

@karelz
Copy link
Member Author

karelz commented Jul 21, 2021

@wfurt looks like regression from your PR #55877
cc @ManickaP

@ManickaP
Copy link
Member

And we missed this on the PR because the whole test lib was failing, not getting any results from the run 😢
Give me half an hour, I'll try to fix this, if not, we'll revert and let @wfurt deal with it properly.

@karelz
Copy link
Member Author

karelz commented Jul 21, 2021

This has impact on many more tests in:

  • System.Net.Http.Functional.Tests.SocketsHttpHandlerTest_Http3_MsQuic
  • System.Net.Http.Functional.Tests.SocketsHttpHandlerTest_HttpClientHandlerTest_Headers_Http3_MsQuic
  • System.Net.Http.Functional.Tests.SocketsHttpHandlerTest_HttpClientHandlerTest_Http3_MsQuic
  • System.Net.Http.Functional.Tests.SocketsHttpHandler_HttpClientHandler_AltSvc_Test_Http3_MsQuic
  • System.Net.Http.Functional.Tests.SocketsHttpHandler_HttpClientHandler_Cancellation_Test_Http3_MsQuic

563 failures (121 in Official builds) on 7/21

@ManickaP ManickaP self-assigned this Jul 21, 2021
@karelz karelz removed the untriaged New issue has not been triaged by the area owner label Jul 21, 2021
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Jul 21, 2021
@karelz karelz changed the title [HTTP/3] Test failed: SendAsync_UserAgent_CorrectlyWritten [HTTP/3] MsQuic tests failed massively Jul 21, 2021
@wfurt
Copy link
Member

wfurt commented Jul 21, 2021

thanks @karelz. I saw and fix the crash but did not let enough time for another run & sync. So one failure coverage other.

@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Jul 21, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Aug 20, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Net.Http test-run-core Test failures in .NET Core test runs
Projects
None yet
3 participants