Skip to content

[✨ Triage] dotnet/runtime#126867 by rzikm - [Test Failure] WinHTTP: PlatformHandlerTest_Cookies_Http2.GetAsync_Recei ... #196

@MihuBot

Description

@MihuBot

Triage for dotnet/runtime#126867.
Repo filter: All networking issues.
MihuBot version: 43c005.
Ping MihaZupan for any issues.

This is a test triage report generated by AI, aimed at helping the triage team quickly identify past issues/PRs that may be related.
Take any conclusions with a large grain of salt.

Tool logs
dotnet/runtime#126867: [Test Failure] WinHTTP: PlatformHandlerTest_Cookies_Http2.GetAsync_ReceiveSetCookieHeader_CookieAdded by rzikm
Extracted 5 search queries: WinHttpException Error 12030 WINHTTP_CALLBACK_STATUS_REQUEST_ERROR 'The connection with the server was terminated abnormally', System.Net.Http.HttpRequestException 'Error while copying content to a stream' System.IO.IOException 'The read operation failed', PlatformHandler (WinHTTP) HttpClient HTTP/2 cookies GetAsync_ReceiveSetCookieHeader_CookieAdded test failure, HTTP/2 WinHTTP Set-Cookie header not processed or cookie not added in HttpClient PlatformHandler, Flaky System.Net.Http functional tests on Helix/CI due to WinHTTP request error / connection termination
Found 25 candidate issues
  • Issue #33930 (March 2020) - [WinHttpHandler] PlatformHandlerTest_Cookies_Http2.GetAsync_ReceiveSetCookieHeader test failure
    Summary: multiple CI hits of the same PlatformHandlerTest_Cookies_Http2 HTTP/2 cookie tests failing with WinHTTP Error 12030 ("The connection with the server was terminated abnormally"). Investigation (with WinHTTP team help) showed the loopback server sometimes sends FIN / closes the connection before the client finishes processing the response; WinHTTP then discards buffered data, leading to the 12030 failures. This was tracked as test flakiness specifically for WinHttpHandler and became the central tracking issue for these cookie test failures.

  • PR #34119 (March 2020) - Disable all PlatformHandlerTest_Cookies_Http2 for WinHttpHandler
    Summary: As an immediate CI mitigation, the entire PlatformHandlerTest_Cookies_Http2 set was disabled for WinHttpHandler builds to stop the CI noise. Discussion suggested a more surgical approach might be possible, but disabling was done to unblock CI.

  • PR #34011 (March 2020) - Disable failing WinHttpHandler HTTP/2 test
    Summary: A smaller/earlier PR to disable the failing HTTP/2 test(s). This and the other disable PRs were part of the effort to stop the widespread CI failures while root cause and fixes were being investigated.

  • PR #34065 (March–June 2020) - WIP: PlatformHandlerTest_Cookies_Http2.GetAsync_ReceiveSetCookieHeader test failure (additional logging)
    Summary: Work-in-progress pipelines with extra logging to capture more diagnostics for the failing cookie test. Useful context during initial investigation but not a resolution by itself.

  • Issue #12043 (February 2019) - Test Failed: GetAsync_SetCookieContainer_CookieSent failed
    Summary: Earlier occurrence of cookie-test failures (HTTP/2) with similar stack traces and WinHTTP 12030; tracked as related and later folded into the broader investigation that became #33930. Shows the problem has recurred over time across test runs and configurations.

  • Issue #23308 (August 2017) - WinHttpResponseStream.CopyToAsyncCore sporadically throws IOException
    Summary: Independent, earlier investigation that documented the same class of symptom: server responds/finishes / closes connection before client has finished sending/receiving, and WinHTTP semantics lead to the client seeing read failures. Authors concluded this behavior was driven by server-side timing and WinHTTP behavior (WinHTTP waits for the request body, and a late arrival / reset can kill response processing). This is a useful precedent describing why WinHTTP surfaces the 12030/connection-terminated error.

  • PR #125261 (March 2026) - Re-enable PlatformHandlerTest_Cookies_Http2 for WinHttpHandler
    Summary: Removed the preprocessor guard that had been preventing the PlatformHandlerTest_Cookies_Http2 tests from running for WinHttpHandler. Validation reported 20 consecutive iterations with zero failures across multiple TFMs; author noted the original root cause (server closing early + WinHTTP discarding buffers) and indicated they could add synchronization in tests if the failures reappear. This PR reinstated the tests in March 2026 (merged Mar 9, 2026), which is important context because your new failure (Apr 14, 2026) is happening after tests were re-enabled.

Overall relevance / conclusion

  • The new failure (WinHTTP error 12030 in PlatformHandlerTest_Cookies_Http2.GetAsync_ReceiveSetCookieHeader_CookieAdded) matches a long-standing class of flaky failures where the test loopback server and WinHTTP timing interact such that the server closes the connection before the client finishes processing, and WinHTTP discards buffered data => Error 12030.
  • Historically the response was to disable the problematic tests for WinHttpHandler (2020), then re-enable the tests in Mar 2026 after further validation. The recent Apr 2026 hit indicates the problem may still resurface in CI even after re-enabling; PR125261's author suggested adding synchronization in the tests if it does.
  • Actionable next steps (not exhaustive): correlate this build's failure with other recent hits (the new issue's report shows 1 hit in 24h/7d/30d), consider whether to (a) add extra test sync/waits in the loopback server so the server doesn't close before the client processes cookies, (b) re-disable the failing test temporarily while gathering more diagnostics, or (c) capture additional traces (WinHTTP / network / loopback server timing) if you want to root-cause in the handler rather than the test harness.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions