Skip to content

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

Description

@carlossanlop

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

Activity

  1. ghost added
    untriagedNew issue has not been triaged by the area owner
    on Jun 23, 2022
  2. added this to the 7.0.0 milestone on Jun 28, 2022
  3. removed
    untriagedNew issue has not been triaged by the area owner
    on Jun 28, 2022
  4. karelz commented on Jun 28, 2022

    @karelz
    Member

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

  5. rzikm commented on Jun 29, 2022

    @rzikm
    Member

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

  6. self-assigned this
    on Jun 29, 2022
  7. wfurt commented on Jun 29, 2022

    @wfurt
    Member

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

  8. assigned and unassigned on Jun 30, 2022
  9. wfurt commented on Jul 1, 2022

    @wfurt
    Member

    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.

  10. carlossanlop commented on Jul 14, 2022

    @carlossanlop
    ContributorAuthor

    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
    
  11. ghost added
    in-prThere is an active PR which will close this issue when it is merged
    on Jul 17, 2022
  12. ghost removed
    in-prThere is an active PR which will close this issue when it is merged
    on Jul 17, 2022
  13. ghost locked as resolved and limited conversation to collaborators on Aug 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions