Skip to content

Conversation

@LoopedBard3
Copy link
Member

Update to temporary custom built BDN version using latest AsmResolver with net11 support while we wait for AsmResolver to officially release support for net11.0. This will fix the failing wasm runtime runs.

Performance pipeline test run: https://dev.azure.com/dnceng/internal/_build/results?buildId=2863108&view=results

@LoopedBard3 LoopedBard3 self-assigned this Dec 18, 2025
@LoopedBard3 LoopedBard3 added the dependencies Pull requests that update a dependency file label Dec 18, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the BenchmarkDotNet dependency to a temporary custom-built version (0.16.0-custom) that includes the latest AsmResolver with .NET 11.0 support. This is a workaround while waiting for an official AsmResolver release with net11 support, and is intended to fix failing WebAssembly runtime benchmark runs.

Key Changes:

  • Updated BenchmarkDotNet version from 0.14.1-nightly.20250107.205 to 0.16.0-custom

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -11,7 +11,7 @@
<MicrosoftNETILLinkPackageVersion>10.0.0-rc.1.25555.107</MicrosoftNETILLinkPackageVersion>
<SystemThreadingChannelsPackageVersion>10.0.0-rc.1.25555.107</SystemThreadingChannelsPackageVersion>
<MicrosoftExtensionsLoggingPackageVersion>10.0.0-rc.1.25555.107</MicrosoftExtensionsLoggingPackageVersion>
Copy link

Copilot AI Dec 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The custom BenchmarkDotNet version 0.16.0-custom lacks documentation about where this package is hosted. Consider adding a comment that explains:

  1. Where the custom package is located (e.g., which Azure Artifacts feed)
  2. Why this custom build is necessary (reference to the AsmResolver net11 support)
  3. When this can be reverted to an official release

This will help future maintainers understand the temporary nature of this change and know where to find the package.

Suggested change
<MicrosoftExtensionsLoggingPackageVersion>10.0.0-rc.1.25555.107</MicrosoftExtensionsLoggingPackageVersion>
<MicrosoftExtensionsLoggingPackageVersion>10.0.0-rc.1.25555.107</MicrosoftExtensionsLoggingPackageVersion>
<!--
NOTE: 0.16.0-custom is a temporary custom build of BenchmarkDotNet.
- Location: Hosted in the internal Azure Artifacts feed (e.g. dotnet-public/benchmarkdotnet).
- Reason: Includes a patched AsmResolver with net11 support required by this repo.
- Revert: Switch back to an official BenchmarkDotNet release once upstream includes AsmResolver net11 support
and this custom package is no longer necessary.
-->

Copilot uses AI. Check for mistakes.
@LoopedBard3 LoopedBard3 marked this pull request as ready for review January 16, 2026 22:12
DrewScoggins
DrewScoggins previously approved these changes Jan 16, 2026
Copy link
Member

@DrewScoggins DrewScoggins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

…oader as the Default was internal and recently sealed so no unavailable, and AnalyzerAssemblyLoader seems to be the replacement: dotnet/roslyn#66612.
@LoopedBard3
Copy link
Member Author

The failures in micro ubuntu are as follows:

[2026/01/21 21:06:17][INFO] System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
[2026/01/21 21:06:17][INFO]  ---> System.Security.Cryptography.CryptographicException: Error occurred during a cryptographic operation.
[2026/01/21 21:06:17][INFO]    at System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor.MapOpenSsl30Code(X509VerifyStatusCode code)
[2026/01/21 21:06:17][INFO]    at System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor.MapVerifyErrorToChainStatus(X509VerifyStatusCode code)
[2026/01/21 21:06:17][INFO]    at System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor.AddElementStatus(X509VerifyStatusCode errorCode, List`1 elementStatus, List`1 overallStatus, Boolean& overallHasNotSignatureValid)
[2026/01/21 21:06:17][INFO]    at System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor.AddElementStatus(ErrorCollection errorCodes, List`1 elementStatus, List`1 overallStatus, Boolean& overallHasNotSignatureValid)
[2026/01/21 21:06:17][INFO]    at System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor.BuildChainElements(WorkingChain workingChain, List`1& overallStatus)
[2026/01/21 21:06:17][INFO]    at System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor.Finish(OidCollection applicationPolicy, OidCollection certificatePolicy)
[2026/01/21 21:06:17][INFO]    at System.Security.Cryptography.X509Certificates.ChainPal.BuildChainCore(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, X509Certificate2Collection customTrustStore, X509ChainTrustMode trustMode, DateTime verificationTime, TimeSpan timeout, Boolean disableAia)
[2026/01/21 21:06:17][INFO]    at System.Security.Cryptography.X509Certificates.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, X509Certificate2Collection customTrustStore, X509ChainTrustMode trustMode, DateTime verificationTime, TimeSpan timeout, Boolean disableAia)
[2026/01/21 21:06:17][INFO]    at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException)
[2026/01/21 21:06:17][INFO]    at System.Net.Security.SslStreamCertificateContext.Create(X509Certificate2 target, X509Certificate2Collection additionalCertificates, Boolean offline, SslCertificateTrust trust, Boolean noOcspFetch)
[2026/01/21 21:06:17][INFO]    at System.Net.Security.SslAuthenticationOptions.UpdateOptions(SslServerAuthenticationOptions sslServerAuthenticationOptions)
[2026/01/21 21:06:17][INFO]    at System.Net.Security.SslStream.AuthenticateAsServerAsync(SslServerAuthenticationOptions sslServerAuthenticationOptions, CancellationToken cancellationToken)
[2026/01/21 21:06:17][INFO]    at System.Net.Security.Tests.SslStreamTests.HandshakeAsync(X509Certificate certificate, SslProtocols sslProtocol) in /datadisks/disk1/work/AF52099A/w/A8E90931/e/performance/src/benchmarks/micro/libraries/System.Net.Security/SslStreamTests.cs:line 189
[2026/01/21 21:06:17][INFO]    at BenchmarkDotNet.Autogenerated.Runnable_180.WorkloadActionNoUnroll(Int64 invokeCount) in /datadisks/disk1/work/AF52099A/w/A8E90931/e/performance/artifacts/bin/MicroBenchmarks/Release/net8.0/MicroBenchmarks-Job-WAJBVO-1/MicroBenchmarks-Job-WAJBVO-1.notcs:line 27750
[2026/01/21 21:06:17][INFO]    at BenchmarkDotNet.Engines.Engine.Measure(Action`1 action, Int64 invokeCount)
[2026/01/21 21:06:17][INFO]    at BenchmarkDotNet.Engines.Engine.RunIteration(IterationData data)
[2026/01/21 21:06:17][INFO]    at BenchmarkDotNet.Engines.Engine.RunCore()
[2026/01/21 21:06:17][INFO]    at BenchmarkDotNet.Engines.Engine.Run()
[2026/01/21 21:06:17][INFO]    at BenchmarkDotNet.Autogenerated.Runnable_180.Run(IHost host, String benchmarkName, RunMode diagnoserRunMode) in /datadisks/disk1/work/AF52099A/w/A8E90931/e/performance/artifacts/bin/MicroBenchmarks/Release/net8.0/MicroBenchmarks-Job-WAJBVO-1/MicroBenchmarks-Job-WAJBVO-1.notcs:line 27665
[2026/01/21 21:06:17][INFO]    at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
[2026/01/21 21:06:17][INFO]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[2026/01/21 21:06:17][INFO]    --- End of inner exception stack trace ---
[2026/01/21 21:06:17][INFO]    at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
[2026/01/21 21:06:17][INFO]    at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
[2026/01/21 21:06:17][INFO]    at BenchmarkDotNet.Autogenerated.UniqueProgramName.AfterAssemblyLoadingAttached(String[] args) in /datadisks/disk1/work/AF52099A/w/A8E90931/e/performance/artifacts/bin/MicroBenchmarks/Release/net8.0/MicroBenchmarks-Job-WAJBVO-1/MicroBenchmarks-Job-WAJBVO-1.notcs:line 62

I think that we merge this as this issue has been hit before and may just be noisy: dotnet/runtime#114129

Copy link
Member

@DrewScoggins DrewScoggins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@LoopedBard3 LoopedBard3 merged commit b937a4b into dotnet:main Jan 22, 2026
32 of 38 checks passed
@LoopedBard3 LoopedBard3 deleted the UpdateBDNVersion branch January 22, 2026 05:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants