Uh oh!
There was an error while loading. Please reload this page.
Enable runtime-async unconditionally in System.Private.CoreLib (CoreCLR and NativeAOT) - #126680
Conversation
Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/18346702-a006-4a46-bed7-52239bf770f9 Co-authored-by: agocke <515774+agocke@users.noreply.github.com>
Tagging subscribers to this area: @dotnet/area-system-reflection |
There was a problem hiding this comment.
Pull request overview
Enables runtime-async=on for System.Private.CoreLib in all build configurations (Debug/Checked/Release) by making the feature flag unconditional.
Changes:
- Moves
<Features>$(Features);runtime-async=on</Features>out of theRelease-onlyPropertyGroupinto an unconditionalPropertyGroup. - Keeps
Release-specific settings limited to<Optimize>.
Uh oh!
There was an error while loading. Please reload this page.
Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/5c178aa8-0d16-4cff-b99c-753db018ae80 Co-authored-by: jkotas <6668460+jkotas@users.noreply.github.com>
MichalStrehovsky
commented
Apr 9, 2026
…async feature Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/172afd3b-48af-4fc5-a77d-9be94dec0db4 Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>
Done in 3db9263 — removed the riscv64/loongarch64 exclusion condition and stale issue-reference comments from the NativeAOT |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
All 18 StartupTests methods in IIS.NewShim.FunctionalTests are failing after runtime-async was enabled unconditionally in CoreCLR (dotnet/runtime#126680, dotnet/runtime#126594). The tests return HTTP 500 even though the app starts successfully in-process. Tracking issue: dotnet/runtime#126925 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Backflow from https://github.com/dotnet/dotnet / 0cf6b19 build 309569 [[ commit created by automation ]] * Update dependencies from build 309569 Updated Dependencies: Microsoft.NET.Runtime.WebAssembly.Sdk, Microsoft.NETCore.BrowserDebugHost.Transport, Microsoft.NET.Runtime.MonoAOTCompiler.Task, dotnet-ef, Microsoft.Bcl.AsyncInterfaces, Microsoft.Bcl.TimeProvider, Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.Design, Microsoft.EntityFrameworkCore.InMemory, Microsoft.EntityFrameworkCore.Relational, Microsoft.EntityFrameworkCore.Sqlite, Microsoft.EntityFrameworkCore.SqlServer, Microsoft.EntityFrameworkCore.Tools, Microsoft.Extensions.Caching.Abstractions, Microsoft.Extensions.Caching.Memory, Microsoft.Extensions.Configuration, Microsoft.Extensions.Configuration.Abstractions, Microsoft.Extensions.Configuration.Binder, Microsoft.Extensions.Configuration.CommandLine, Microsoft.Extensions.Configuration.EnvironmentVariables, Microsoft.Extensions.Configuration.FileExtensions, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.Configuration.Json, Microsoft.Extensions.Configuration.UserSecrets, Microsoft.Extensions.Configuration.Xml, Microsoft.Extensions.DependencyInjection, Microsoft.Extensions.DependencyInjection.Abstractions, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.Diagnostics, Microsoft.Extensions.Diagnostics.Abstractions, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Composite, Microsoft.Extensions.FileProviders.Physical, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.HostFactoryResolver.Sources, Microsoft.Extensions.Hosting, Microsoft.Extensions.Hosting.Abstractions, Microsoft.Extensions.Http, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Configuration, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.Logging.Debug, Microsoft.Extensions.Logging.EventLog, Microsoft.Extensions.Logging.EventSource, Microsoft.Extensions.Logging.TraceSource, Microsoft.Extensions.Options, Microsoft.Extensions.Options.ConfigurationExtensions, Microsoft.Extensions.Options.DataAnnotations, Microsoft.Extensions.Primitives, Microsoft.Internal.Runtime.AspNetCore.Transport, Microsoft.NETCore.App.Ref, Microsoft.NETCore.Platforms, System.Collections.Immutable, System.Composition, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Diagnostics.EventLog, System.Diagnostics.PerformanceCounter, System.DirectoryServices.Protocols, System.Formats.Asn1, System.Formats.Cbor, System.IO.Hashing, System.IO.Pipelines, System.Memory.Data, System.Net.Http.Json, System.Net.Http.WinHttpHandler, System.Net.ServerSentEvents, System.Numerics.Tensors, System.Reflection.Metadata, System.Resources.Extensions, System.Runtime.Caching, System.Security.Cryptography.Pkcs, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encodings.Web, System.Text.Json, System.Threading.AccessControl, System.Threading.Channels, System.Threading.RateLimiting (Version 11.0.0-preview.4.26203.108 -> 11.0.0-preview.4.26208.110) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Archives, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.RemoteExecutor, Microsoft.DotNet.SharedFramework.Sdk (Version 11.0.0-beta.26203.108 -> 11.0.0-beta.26208.110) Microsoft.Web.Xdt (Version 3.3.0-preview.4.26203.108 -> 3.3.0-preview.4.26208.110) NuGet.Frameworks, NuGet.Packaging, NuGet.Versioning (Version 7.6.0-rc.20408 -> 7.6.0-rc.20910) [[ commit created by automation ]] * Add feed back into NuGet.config * Backflow from https://github.com/dotnet/dotnet / 5bed449 build 309901 [[ commit created by automation ]] * Update dependencies from build 309901 Updated Dependencies: Microsoft.NET.Runtime.WebAssembly.Sdk, Microsoft.NETCore.BrowserDebugHost.Transport, Microsoft.NET.Runtime.MonoAOTCompiler.Task, dotnet-ef, Microsoft.Bcl.AsyncInterfaces, Microsoft.Bcl.TimeProvider, Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.Design, Microsoft.EntityFrameworkCore.InMemory, Microsoft.EntityFrameworkCore.Relational, Microsoft.EntityFrameworkCore.Sqlite, Microsoft.EntityFrameworkCore.SqlServer, Microsoft.EntityFrameworkCore.Tools, Microsoft.Extensions.Caching.Abstractions, Microsoft.Extensions.Caching.Memory, Microsoft.Extensions.Configuration, Microsoft.Extensions.Configuration.Abstractions, Microsoft.Extensions.Configuration.Binder, Microsoft.Extensions.Configuration.CommandLine, Microsoft.Extensions.Configuration.EnvironmentVariables, Microsoft.Extensions.Configuration.FileExtensions, Microsoft.Extensions.Configuration.Ini, Microsoft.Extensions.Configuration.Json, Microsoft.Extensions.Configuration.UserSecrets, Microsoft.Extensions.Configuration.Xml, Microsoft.Extensions.DependencyInjection, Microsoft.Extensions.DependencyInjection.Abstractions, Microsoft.Extensions.DependencyModel, Microsoft.Extensions.Diagnostics, Microsoft.Extensions.Diagnostics.Abstractions, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Composite, Microsoft.Extensions.FileProviders.Physical, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.HostFactoryResolver.Sources, Microsoft.Extensions.Hosting, Microsoft.Extensions.Hosting.Abstractions, Microsoft.Extensions.Http, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Configuration, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.Logging.Debug, Microsoft.Extensions.Logging.EventLog, Microsoft.Extensions.Logging.EventSource, Microsoft.Extensions.Logging.TraceSource, Microsoft.Extensions.Options, Microsoft.Extensions.Options.ConfigurationExtensions, Microsoft.Extensions.Options.DataAnnotations, Microsoft.Extensions.Primitives, Microsoft.Internal.Runtime.AspNetCore.Transport, Microsoft.NETCore.App.Ref, Microsoft.NETCore.Platforms, System.Collections.Immutable, System.Composition, System.Configuration.ConfigurationManager, System.Diagnostics.DiagnosticSource, System.Diagnostics.EventLog, System.Diagnostics.PerformanceCounter, System.DirectoryServices.Protocols, System.Formats.Asn1, System.Formats.Cbor, System.IO.Hashing, System.IO.Pipelines, System.Memory.Data, System.Net.Http.Json, System.Net.Http.WinHttpHandler, System.Net.ServerSentEvents, System.Numerics.Tensors, System.Reflection.Metadata, System.Resources.Extensions, System.Runtime.Caching, System.Security.Cryptography.Pkcs, System.Security.Cryptography.Xml, System.Security.Permissions, System.ServiceProcess.ServiceController, System.Text.Encodings.Web, System.Text.Json, System.Threading.AccessControl, System.Threading.Channels, System.Threading.RateLimiting (Version 11.0.0-preview.4.26208.110 -> 11.0.0-preview.4.26210.110) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Archives, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.RemoteExecutor, Microsoft.DotNet.SharedFramework.Sdk (Version 11.0.0-beta.26208.110 -> 11.0.0-beta.26210.110) Microsoft.Web.Xdt (Version 3.3.0-preview.4.26208.110 -> 3.3.0-preview.4.26210.110) NuGet.Frameworks, NuGet.Packaging, NuGet.Versioning (Version 7.6.0-rc.20910 -> 7.6.0-rc.21110) [[ commit created by automation ]] * Add back package source for dotnet-extensions * Remove DownloadFile task from RepoTasks Removed the DownloadFile task from RepoTasks. * Add quarantined test for AuthHeaderEnvironmentVariableRemoved * Quarantine IIS NewShim StartupTests failing due to runtime-async All 18 StartupTests methods in IIS.NewShim.FunctionalTests are failing after runtime-async was enabled unconditionally in CoreCLR (dotnet/runtime#126680, dotnet/runtime#126594). The tests return HTTP 500 even though the app starts successfully in-process. Tracking issue: dotnet/runtime#126925 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Quarantine IIS NewShim StartupTests only (not other IIS variants) Only the NewShim variants of StartupTests are failing after runtime-async was enabled in CoreCLR. Use a partial class to apply [QuarantinedTest] only to the NewShim assembly, leaving the IIS, IISExpress, and NewHandler variants unaffected. Tracking issue: dotnet/runtime#126925 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Use #if NEWSHIM_FUNCTIONALS instead of partial class for quarantine Simpler approach: conditionally apply [QuarantinedTest] using the existing NEWSHIM_FUNCTIONALS define constant instead of adding a partial class and a new file. No new files needed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Quarantine ShutdownTests.OutOfProcessToInProcessHostingModelSwitchWorks for NewShim This test hangs in the NewShim variant, blocking the entire work item. Same runtime-async root cause as the StartupTests failures. Tracking issue: dotnet/runtime#126925 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Quarantine entire ShutdownTests class for NewShim Multiple ShutdownTests methods are failing/hanging in the NewShim variant. Move to class-level quarantine instead of individual method quarantine. Tracking issue: dotnet/runtime#126925 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com> Co-authored-by: Eric StJohn <ericstj@microsoft.com> Co-authored-by: wigodbe <wigodbe@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
runtime-async=onwas only set forReleasebuilds of CoreCLR'sSystem.Private.CoreLib, and was gated behind a riscv64/loongarch64 exclusion in NativeAOT'sSystem.Private.CoreLib. This enables it unconditionally in both projects.Changes
src/coreclr/System.Private.CoreLib/System.Private.CoreLib.csproj: Moved<Features>$(Features);runtime-async=on</Features>into the configuration-independent properties block, next to<Nullable>enable</Nullable>, so Debug, Checked, and Release builds all compile with the runtime-async feature.src/coreclr/nativeaot/System.Private.CoreLib/src/System.Private.CoreLib.csproj: Removed the riscv64/loongarch64 architecture exclusion condition and the associated stale issue-reference comments.runtime-async=onis now enabled unconditionally, consistent with the CoreCLR change (riscv64 and loongarch64 support were resolved in Improve runtime-async support on linux-riscv64 #125446 and [LoongArch64] Enable Runtime Async. (issue#124935) #125114).