Uh oh!
There was an error while loading. Please reload this page.
[release/7.0] Unload MsQuic after checking for QUIC support to free resources. - #74931
[release/7.0] Unload MsQuic after checking for QUIC support to free resources.#74931github-actions[bot] wants to merge 3 commits into
Conversation
ghost
commented
Sep 1, 2022
Tagging subscribers to this area: @dotnet/ncl Issue DetailsBackport of #74749 to release/7.0 /cc @rzikm Customer ImpactTestingRiskIMPORTANT: Is this backport for a servicing release? If so and this change touches code that ships in a NuGet package, please make certain that you have added any necessary package authoring and gotten it explicitly reviewed.
|
carlossanlop
commented
Sep 1, 2022
The CI was down yesterday for maintenance. Only 5 checks were executed while that happened. I'm closing and reopening this PR so the full CI runs. |
Putting this on hold until we investigate #74952 |
rzikm
commented
Sep 5, 2022
There is a problem which manifests on Debian11+Docker+ARM64 with this change, we would need changes in MsQuic as well, so I am closing this for now. |
Backport of #74749 to release/7.0, closes#74629.
/cc @rzikm
Customer Impact
When using HttpClient, we also check whether the running platform supports QUIC (to enable HTTP3). However, the way we are checking QUIC support causes many threads to be allocated in the native MsQuic library (2* number of logical cores). This causes unnecessary resource increase even if the process does not end up using HTTP3 at all (HTTP3 is opt-in). This would therefore cause regression in memory usage when upgrading to .NET 7 in such cases.
Affected platforms include Windows 11, Windos Server 2022, many Linux platforms with msquic package installed.
Testing
Functional tests suite passes as part of the CI, resource consumption was checked manually.
Risk
Low, the fix consists of gracefully unloading MsQuic library from the process after checking QUIC support. The library is reloaded only when actually needed.