Skip to content

System.Net.Http.WinHttpHandler.Functional.Tests crash on assert #112700

Description

@ericstj

Observed in release/8.0 branch

Build Information

Build: https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_build/results?buildId=950188
Build error leg or test failing: System.Net.Http.WinHttpHandler.Functional.Tests.WorkItemExecution
Pull request: #112494

Error Message

Fill the error message using step by step known issues guidance.

{
  "ErrorMessage": "OnRequestSendingRequest: state.RequestHandle is null",
  "ErrorPattern": "",
  "BuildRetry": false,
  "ExcludeConsoleLog": false
}

Log: https://helixr1107v0xd1eu3ibi6ka.blob.core.windows.net/dotnet-runtime-refs-pull-112494-merge-9343a57bae6046a29f/System.Net.Http.WinHttpHandler.Functional.Tests/1/console.cd4eada5.log?helixlogtype=result

Relevant stack:

Process terminated. Assertion failed.
OnRequestSendingRequest: state.RequestHandle is null
   at System.Net.Http.WinHttpRequestCallback.OnRequestSendingRequest(WinHttpRequestState state) in /_/src/libraries/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpRequestCallback.cs:line 234
   at System.Net.Http.WinHttpRequestCallback.RequestCallback(WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) in /_/src/libraries/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpRequestCallback.cs:line 91
   at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) in /_/src/libraries/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpRequestCallback.cs:line 46
   at Interop.WinHttp.<WinHttpWriteData>g____PInvoke|201_0(IntPtr __requestHandle_native, IntPtr __buffer_native, UInt32 __bufferSize_native, IntPtr __parameterIgnoredAndShouldBeNullForAsync_native)
   at Interop.WinHttp.<WinHttpWriteData>g____PInvoke|201_0(IntPtr __requestHandle_native, IntPtr __buffer_native, UInt32 __bufferSize_native, IntPtr __parameterIgnoredAndShouldBeNullForAsync_native)
   at Interop.WinHttp.WinHttpWriteData(SafeWinHttpHandle requestHandle, IntPtr buffer, UInt32 bufferSize, IntPtr parameterIgnoredAndShouldBeNullForAsync) in /_/src/libraries/System.Net.Http.WinHttpHandler/src/Microsoft.Interop.LibraryImportGenerator/Microsoft.Interop.LibraryImportGenerator/LibraryImports.g.cs:line 856
   at System.Net.Http.WinHttpRequestStream.InternalWriteDataAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken token) in /_/src/libraries/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpRequestStream.cs:line 233
   at System.Net.Http.WinHttpRequestStream.InternalWriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken token) in /_/src/libraries/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpRequestStream.cs:line 202
   at System.Net.Http.WinHttpRequestStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken token) in /_/src/libraries/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpRequestStream.cs:line 135
   at System.IO.Stream.WriteAsync(ReadOnlyMemory`1 buffer, CancellationToken cancellationToken) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs:line 744
   at System.Net.Http.WinHttpHandlerFunctional.Tests.BidirectionStreamingTest.<>c__DisplayClass12_1.<<AfterReadResponseServerError_ClientWrite>b__1>d.MoveNext() in /_/src/libraries/System.Net.Http.WinHttpHandler/tests/FunctionalTests/BidirectionStreamingTest.cs:line 150
   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.WinHttpHandlerFunctional.Tests.BidirectionStreamingTest.<>c__DisplayClass12_1.<AfterReadResponseServerError_ClientWrite>b__1()
   at Xunit.Assert.RecordExceptionAsync(Func`1 testCode) in /_/src/xunit.assert/Asserts/Record.cs:line 104
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) in /_/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncMethodBuilderCore.cs:line 38
   at Xunit.Assert.ThrowsAsync[T](Func`1 testCode) in /_/src/xunit.assert/Asserts/ExceptionAsserts.cs:line 73
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) in /_/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncMethodBuilderCore.cs:line 23
   at Xunit.Assert.ThrowsAsync[T](Func`1 testCode)
   at System.Net.Http.WinHttpHandlerFunctional.Tests.BidirectionStreamingTest.AfterReadResponseServerError_ClientWrite() in /_/src/libraries/System.Net.Http.WinHttpHandler/tests/FunctionalTests/BidirectionStreamingTest.cs:line 146
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs:line 179
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread) in /_/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncTaskMethodBuilderT.cs:line 352
   at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) in /_/src/xunit.execution/Sdk/MaxConcurrencySyncContext.cs:line 106
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs:line 179
   at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() in /_/src/xunit.execution/Sdk/MaxConcurrencySyncContext.cs:line 96
   at Xunit.Sdk.XunitWorkerThread.<>c.<QueueUserWorkItem>b__5_0(Object _) in /_/src/common/XunitWorkerThread.cs:line 37
   at System.Threading.Tasks.Task.InnerInvoke() in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:line 2405
   at System.Threading.Tasks.Task.<>c.<.cctor>b__281_0(Object obj) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:line 2387
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs:line 179
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:line 2345
   at System.Threading.Tasks.Task.ExecuteEntryUnsafe(Thread threadPoolThread) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:line 2283
   at System.Threading.Tasks.ThreadPoolTaskScheduler.<>c.<.cctor>b__10_0(Object s) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/ThreadPoolTaskScheduler.cs:line 35
   at System.Threading.Thread.StartCallback() in /_/src/coreclr/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs:line 105

Known issue validation

Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=950188
Error message validated: [OnRequestSendingRequest: state.RequestHandle is null]
Result validation: ✅ Known issue matched with the provided build.
Validation performed at: 2/19/2025 4:57:47 PM UTC

Report

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
0 0 0

Activity

  1. added
    blocking-clean-ciBlocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'
    Known Build ErrorUse this to report build issues in the .NET Helix tab
    on Feb 19, 2025
  2. dotnet-policy-service commented on Feb 19, 2025

    @dotnet-policy-service
    Contributor

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

  3. ManickaP commented on Feb 20, 2025

    @ManickaP
    Member

    This happens on 8.0, 8.0 staging so it doesn't seem to be caused by the recent changes in WinHttpHandler.
    I randomly looked into few console logs and it seems it's the very same call stack every time (excluding obviously unrelated other crashes):

    It started happening much more since 11.2. So it might be uncovered by some environmental change, but based on the assert itself, this seems like a legit bug.

  4. added this to the 10.0.0 milestone on Feb 20, 2025
  5. removed
    untriagedNew issue has not been triaged by the area owner
    on Feb 20, 2025
  6. ManickaP commented on Feb 20, 2025

    @ManickaP
    Member

    Ok, so it's only in 8.0, because it's been fixed by this: #93984
    Do we want to backport it? It's a product code change.
    @karelz @wfurt

  7. wfurt commented on Feb 20, 2025

    @wfurt
    Member

    I would be open to it. It looks like simple change and it would help us stabilize release CI.

  8. removed
    blocking-clean-ciBlocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'
    on Apr 28, 2025
  9. jeffschwMSFT commented on Apr 28, 2025

    @jeffschwMSFT
    Member

    removing blocking-clean-ci as this issue has not failed in 30 days

    24-Hour Hit Count 7-Day Hit Count 1-Month Count
    0 0 0
  10. wfurt commented on Apr 28, 2025

    @wfurt
    Member

    fixed by #112861 in 8.0 release

  11. locked and limited conversation to collaborators on May 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions