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

[release/8.0] Suppress IL3000 in MsQuicApi constructor #109965

Merged
merged 2 commits into from
Nov 25, 2024

Conversation

rzikm
Copy link
Member

@rzikm rzikm commented Nov 19, 2024

A call to Assembly.Location was added in a recent fix. It has IL30000 suppressed via #pragma warning disable, but that only applies to the compilation of the library itself. Consumers will hit it when doing something like publishing their app as NativeAOT.

This change adds an [UnconditionalSuppressMessage] to the MsQuicApi static constructor such that IL30000 should also be suppressed for apps consuming the runtime.

Customer Impact

Customers are seeing a warning when NativeAoT compiling applications relying on HttpClient. Many customers also use option to treat warning as errors and thus are unable to build their applications without suppressing the warning.

Available workarounds are either

  • revert to previous release
  • suppress the warning (and remember to unsuppress it once fix is released)
  • update to .NET 9.0 (may not be possible, some customers need to stay on LTS release versions)

Regression

  • Yes
  • No

Regression against previous release. The same issue has discovered for 9.0 GA release and fixed before final build was created. However, the fix was not backported to 8.0.

Testing

The same change is present as part of 9.0 builds where the regression does not reproduce.

Risk

Low, no functional change, the issue pointed to by the warning is already correctly handled at runtime.

A call to `Assembly.Location` was added in a recent fix. It has `IL30000` suppressed via `#pragma warning disable`, but that only applies to the compilation of the library itself. Consumers will hit it when doing something like publishing their app as NativeAOT.

This change adds an `[UnconditionalSuppressMessage]` to the `MsQuicApi` static constructor such that `IL30000` should also be suppressed for apps consuming the runtime.

This was caught in an aspnetcore deps flow PR coming from runtime.
Copy link
Contributor

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

@rzikm rzikm marked this pull request as ready for review November 21, 2024 14:11
@rzikm rzikm requested a review from a team November 21, 2024 14:12
@rzikm rzikm added the Servicing-consider Issue for next servicing release review label Nov 21, 2024
@karelz karelz added this to the 8.0.x milestone Nov 25, 2024
@karelz karelz added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Nov 25, 2024
@karelz
Copy link
Member

karelz commented Nov 25, 2024

Approved by Tactics (@SteveMCarroll) via email on 2024/11/25 ... marking as such

@rzikm
Copy link
Member Author

rzikm commented Nov 25, 2024

CI is green, approved, merging.

@rzikm rzikm merged commit 36320b3 into dotnet:release/8.0-staging Nov 25, 2024
109 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-System.Net.Quic Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants