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

Test failure: System.Net.Http.Functional.Tests - Assertion failed: ClientCertificates. Expected enumerable cloned value. #71233

Closed
carlossanlop opened this issue Jun 23, 2022 · 6 comments · Fixed by #72326

Comments

@carlossanlop
Copy link
Member

Unsure if this is a duplicate of an existing issue. I didn't find one with this error message.

Hit it in this PR: https://github.com/dotnet/runtime/pull/71222/checks?check_run_id=7031289981
Log file example: https://helixre107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-pull-71222-merge-3898305cd6cf4334a3/System.Net.Http.Functional.Tests/1/console.9776e264.log?helixlogtype=result

Process terminated. Assertion failed.
ClientCertificates. Expected enumerable cloned value.
   at System.Net.Security.SslClientAuthenticationOptionsExtensions.ShallowClone(SslClientAuthenticationOptions options) in /_/src/libraries/Common/src/System/Net/Security/SslClientAuthenticationOptionsExtensions.cs:line 41
   at System.Net.Http.HttpConnectionSettings.CloneAndNormalize() in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionSettings.cs:line 85
   at System.Net.Http.SocketsHttpHandler.SetupHandlerChain() in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs:line 486
   at System.Net.Http.SocketsHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs:line 576
   at System.Net.Http.HttpClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpClientHandler.cs:line 314
   at System.Net.Http.Functional.Tests.VersionHttpClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTestBase.SocketsHttpHandler.cs:line 117
   at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs:line 75
   at System.Net.Http.HttpClient.<>n__0(HttpRequestMessage request, CancellationToken cancellationToken)
   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 532
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) in /_/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncMethodBuilderCore.cs:line 38
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 520
   at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 506
   at System.Net.Http.Functional.Tests.HttpClientHandlerTest_Http3.<>c__DisplayClass6_2.<SendMoreThanStreamLimitRequestsConcurrently_LastWaits>b__3(Int32 i) in /_/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Http3.cs:line 230
   at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.<ForWorker>b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/Parallel.cs:line 1062
   at System.Threading.Tasks.TaskReplicator.Replica`1.ExecuteAction(Boolean& yieldedBeforeCompletion) in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/TaskReplicator.cs:line 122
   at System.Threading.Tasks.TaskReplicator.Replica.Execute() in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/TaskReplicator.cs:line 77
   at System.Threading.Tasks.TaskReplicator.Replica.<>c.<.ctor>b__4_0(Object s) in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/TaskReplicator.cs:line 39
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs:line 268
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:line 2349
   at System.Threading.ThreadPoolWorkQueue.Dispatch() in /_/src/libraries/System.Private.CoreLib/src/System/Threading/ThreadPoolWorkQueue.cs:line 919
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() in /_/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs:line 77
   at System.Threading.Thread.StartCallback() in /_/src/coreclr/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs:line 105
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Jun 23, 2022
@ghost
Copy link

ghost commented Jun 23, 2022

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

Issue Details

Unsure if this is a duplicate of an existing issue. I didn't find one with this error message.

Hit it in this PR: https://github.com/dotnet/runtime/pull/71222/checks?check_run_id=7031289981
Log file example: https://helixre107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-pull-71222-merge-3898305cd6cf4334a3/System.Net.Http.Functional.Tests/1/console.9776e264.log?helixlogtype=result

Process terminated. Assertion failed.
ClientCertificates. Expected enumerable cloned value.
   at System.Net.Security.SslClientAuthenticationOptionsExtensions.ShallowClone(SslClientAuthenticationOptions options) in /_/src/libraries/Common/src/System/Net/Security/SslClientAuthenticationOptionsExtensions.cs:line 41
   at System.Net.Http.HttpConnectionSettings.CloneAndNormalize() in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionSettings.cs:line 85
   at System.Net.Http.SocketsHttpHandler.SetupHandlerChain() in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs:line 486
   at System.Net.Http.SocketsHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs:line 576
   at System.Net.Http.HttpClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpClientHandler.cs:line 314
   at System.Net.Http.Functional.Tests.VersionHttpClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTestBase.SocketsHttpHandler.cs:line 117
   at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs:line 75
   at System.Net.Http.HttpClient.<>n__0(HttpRequestMessage request, CancellationToken cancellationToken)
   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 532
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) in /_/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncMethodBuilderCore.cs:line 38
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 520
   at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 506
   at System.Net.Http.Functional.Tests.HttpClientHandlerTest_Http3.<>c__DisplayClass6_2.<SendMoreThanStreamLimitRequestsConcurrently_LastWaits>b__3(Int32 i) in /_/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Http3.cs:line 230
   at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.<ForWorker>b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/Parallel.cs:line 1062
   at System.Threading.Tasks.TaskReplicator.Replica`1.ExecuteAction(Boolean& yieldedBeforeCompletion) in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/TaskReplicator.cs:line 122
   at System.Threading.Tasks.TaskReplicator.Replica.Execute() in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/TaskReplicator.cs:line 77
   at System.Threading.Tasks.TaskReplicator.Replica.<>c.<.ctor>b__4_0(Object s) in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/TaskReplicator.cs:line 39
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs:line 268
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:line 2349
   at System.Threading.ThreadPoolWorkQueue.Dispatch() in /_/src/libraries/System.Private.CoreLib/src/System/Threading/ThreadPoolWorkQueue.cs:line 919
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() in /_/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs:line 77
   at System.Threading.Thread.StartCallback() in /_/src/coreclr/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs:line 105
Author: carlossanlop
Assignees: -
Labels:

area-System.Net.Http, test-failure

Milestone: -

@karelz karelz added this to To Do (Low Priority) in HTTP/3 via automation Jun 28, 2022
@karelz karelz added this to the 7.0.0 milestone Jun 28, 2022
@karelz karelz removed the untriaged New issue has not been triaged by the area owner label Jun 28, 2022
@karelz karelz moved this from To Do (Low Priority) to To Do (High Priority) in HTTP/3 Jun 28, 2022
@karelz
Copy link
Member

karelz commented Jun 28, 2022

Triage: Assert crashes the test suite, we should act on it based on frequency of failures (@rzikm).

@rzikm
Copy link
Member

rzikm commented Jun 29, 2022

Seems to happen rather often in PRs, I will try to take a look once I have time

@rzikm rzikm self-assigned this Jun 29, 2022
@wfurt
Copy link
Member

wfurt commented Jun 29, 2022

I assume this is recent failure? Can we track first failure to guess what caused the regression?

@wfurt
Copy link
Member

wfurt commented Jul 1, 2022

It would be interesting to know what tests were running @antonfirsov. SslStream does effectively shallow copy on SslClientAuthenticationOptions so it is fully independent on further changes. H3/Quic simply take reference and the ClientCertificates is not thread safe AFAIK.

@ManickaP ManickaP assigned wfurt and unassigned antonfirsov Jul 14, 2022
@carlossanlop
Copy link
Member Author

I hit this one again in a more recent PR (may be helpful in case the original report's logs have been deleted).

cc @antonfirsov @wfurt @ManickaP

PR that hit this: #72139

Log: https://helixre107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-pull-72139-merge-ff87ecf69f5a41b6b0/System.Net.Http.Functional.Tests/1/console.a9159faa.log?helixlogtype=result

rocess terminated. Assertion failed.
ClientCertificates. Expected enumerable cloned value.
   at System.Net.Security.SslClientAuthenticationOptionsExtensions.ShallowClone(SslClientAuthenticationOptions options) in /_/src/libraries/Common/src/System/Net/Security/SslClientAuthenticationOptionsExtensions.cs:line 41
   at System.Net.Http.HttpConnectionSettings.CloneAndNormalize() in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionSettings.cs:line 85
   at System.Net.Http.SocketsHttpHandler.SetupHandlerChain() in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs:line 478
   at System.Net.Http.SocketsHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs:line 568
   at System.Net.Http.HttpClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpClientHandler.cs:line 314
   at System.Net.Http.Functional.Tests.VersionHttpClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTestBase.SocketsHttpHandler.cs:line 117
   at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs:line 75
   at System.Net.Http.HttpClient.<>n__0(HttpRequestMessage request, CancellationToken cancellationToken)
   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 532
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) in /_/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncMethodBuilderCore.cs:line 38
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 520
   at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request) in /_/src/libraries/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 506
   at System.Net.Http.Functional.Tests.HttpClientHandlerTest_Http3.<>c__DisplayClass6_2.<SendMoreThanStreamLimitRequestsConcurrently_LastWaits>b__3(Int32 i) in /_/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Http3.cs:line 231
   at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.<ForWorker>b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/Parallel.cs:line 1062
   at System.Threading.Tasks.TaskReplicator.Replica`1.ExecuteAction(Boolean& yieldedBeforeCompletion) in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/TaskReplicator.cs:line 122
   at System.Threading.Tasks.TaskReplicator.Replica.Execute() in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/TaskReplicator.cs:line 77
   at System.Threading.Tasks.TaskReplicator.Replica.<>c.<.ctor>b__4_0(Object s) in /_/src/libraries/System.Threading.Tasks.Parallel/src/System/Threading/Tasks/TaskReplicator.cs:line 39
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs:line 268
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:line 2349
   at System.Threading.ThreadPoolWorkQueue.Dispatch() in /_/src/libraries/System.Private.CoreLib/src/System/Threading/ThreadPoolWorkQueue.cs:line 919
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() in /_/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs:line 77

@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Jul 17, 2022
HTTP/3 automation moved this from To Do (High Priority) to Done Jul 17, 2022
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Jul 17, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Aug 16, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
No open projects
HTTP/3
  
Done
Development

Successfully merging a pull request may close this issue.

5 participants