-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
JIT/jit64/opt/rngchk/RngchkStress2.cs
failing to build with error CS8078: An expression is too long or complex to compile
#87879
Comments
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsFailing on
This was hit on #87522 .
|
``` /Users/runner/work/1/s/src/tests/JIT/jit64/opt/rngchk/RngchkStress2.cs(527,796): error CS8078: An expression is too long or complex to compile [/Users/runner/work/1/s/src/tests/JIT/jit64/opt/rngchk/RngchkStress2_o.csproj] [/Users/runner/work/1/s/src/tests/build.proj] ``` Issue: #87879
* Update dependencies from https://github.com/dotnet/arcade build 20230612.4 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23312.4 Dependency coherency updates Microsoft.SourceLink.GitHub From Version 8.0.0-beta.23252.2 -> To Version 8.0.0-beta.23309.3 (parent: Microsoft.DotNet.Arcade.Sdk * Update dependencies from https://github.com/dotnet/arcade build 20230613.6 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23313.6 Dependency coherency updates Microsoft.SourceLink.GitHub,Microsoft.DotNet.XliffTasks From Version 8.0.0-beta.23252.2 -> To Version 8.0.0-beta.23309.3 (parent: Microsoft.DotNet.Arcade.Sdk * Update dependencies from https://github.com/dotnet/sdk build 20230614.2 Microsoft.DotNet.ApiCompat.Task From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23314.2 * [wasm] Set SelfContained=true for local, and in-tree targets Fixes sample builds: ``` /__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/browser-bench/Wasm.Browser.Bench.Sample.csproj] /__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/browser-profile/Wasm.BrowserProfile.Sample.csproj] /__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/browser-advanced/Wasm.Advanced.Sample.csproj] /__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/console-v8/Wasm.Console.V8.Sample.csproj] /__w/1/s/.packages/microsoft.net.illink.tasks/8.0.0-preview.6.23309.7/build/Microsoft.NET.ILLink.targets(193,5): error NETSDK1102: Optimizing assemblies for size is not supported for the selected publish configuration. Please ensure that you are publishing a self-contained app. [/__w/1/s/src/mono/sample/wasm/browser-bench/Console/Wasm.Console.Bench.Sample.csproj] /__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/browser/Wasm.Browser.Sample.csproj] /__w/1/s/src/mono/wasm/build/WasmApp.targets(272,5): error : WasmAssembliesToBundle item is empty. No assemblies to process [/__w/1/s/src/mono/sample/wasm/console-node/Wasm.Console.Node.Sample.csproj] ``` * [wasm] debugger-tests Set RID, and LibrariesConfiguration early * Update dependencies from https://github.com/dotnet/llvm-project build 20230615.1 runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter From Version 14.0.0-alpha.1.23307.1 -> To Version 14.0.0-alpha.1.23315.1 * Update dependencies from https://github.com/dotnet/arcade build 20230614.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23314.1 Dependency coherency updates Microsoft.SourceLink.GitHub,Microsoft.DotNet.XliffTasks From Version 8.0.0-beta.23252.2 -> To Version 8.0.0-beta.23309.3 (parent: Microsoft.DotNet.Arcade.Sdk * Update dependencies from https://github.com/dotnet/sdk build 20230615.13 Microsoft.DotNet.ApiCompat.Task From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23315.13 * Update dependencies from https://github.com/dotnet/sdk build 20230616.3 Microsoft.DotNet.ApiCompat.Task From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23316.3 * Update dependencies from https://github.com/dotnet/llvm-project build 20230616.1 runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter From Version 14.0.0-alpha.1.23307.1 -> To Version 14.0.0-alpha.1.23316.1 * Update dependencies from https://github.com/dotnet/llvm-project build 20230616.4 runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter From Version 14.0.0-alpha.1.23307.1 -> To Version 14.0.0-alpha.1.23316.4 * Update dependencies from https://github.com/dotnet/arcade build 20230616.6 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23316.6 Dependency coherency updates Microsoft.SourceLink.GitHub,Microsoft.DotNet.XliffTasks From Version 8.0.0-beta.23252.2 -> To Version 8.0.0-beta.23314.2 (parent: Microsoft.DotNet.Arcade.Sdk * Update dependencies from https://github.com/dotnet/runtime-assets build 20230616.1 Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData From Version 8.0.0-beta.23307.1 -> To Version 8.0.0-beta.23316.1 * Update dependencies from https://github.com/dotnet/hotreload-utils build 20230616.4 Microsoft.DotNet.HotReload.Utils.Generator.BuildTool From Version 8.0.0-alpha.0.23305.2 -> To Version 8.0.0-alpha.0.23316.4 * Update dependencies from https://github.com/dotnet/sdk build 20230616.53 Microsoft.DotNet.ApiCompat.Task From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23316.53 * Update dependencies from https://github.com/dotnet/runtime build 20230619.2 Microsoft.NET.ILLink.Tasks , Microsoft.NET.Sdk.IL , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , System.Text.Json From Version 8.0.0-preview.6.23309.7 -> To Version 8.0.0-preview.6.23319.2 * Update dependencies from https://github.com/dotnet/sdk build 20230619.8 Microsoft.DotNet.ApiCompat.Task From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23319.8 * Fix all host tests to correctly specify SelfContained when necessary Recent SDK change modified the default for when RuntimeIdentifier is specified. Before this also implied SelfContained, now it doesn't. The host tests were not yet updated for this and thus several failed with various types of failures. This change modifes all the test projects which specify RuntimeIdentifier to also specify SelfContained=true. And then updates the test infra to: * Fail if RuntimeIdentifier is specified and SelfContained is not specified * Update all callsites which specify RuntimeIdentifier to also specify SelfContained. * Update dependencies from https://github.com/dotnet/llvm-project build 20230619.3 runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter From Version 14.0.0-alpha.1.23307.1 -> To Version 14.0.0-alpha.1.23319.3 * Implement a workaround for issue with EnableUnsafeBinaryFormatterSerialization See #87811 for more details. This change uses a custom target to hook right before the runtimeconfig is generated and removes the runtime property from the item group to avoid writing it into runtimeconfig. * Update dependencies from https://github.com/dotnet/arcade build 20230619.3 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23319.3 * Update dependencies from https://github.com/dotnet/icu build 20230619.1 Microsoft.NETCore.Runtime.ICU.Transport From Version 8.0.0-preview.6.23312.1 -> To Version 8.0.0-preview.6.23319.1 * Update dependencies from https://github.com/dotnet/hotreload-utils build 20230619.2 Microsoft.DotNet.HotReload.Utils.Generator.BuildTool From Version 8.0.0-alpha.0.23305.2 -> To Version 8.0.0-alpha.0.23319.2 * Update dependencies from https://github.com/dotnet/cecil build 20230619.2 Microsoft.DotNet.Cecil From Version 0.11.4-alpha.23312.1 -> To Version 0.11.4-alpha.23319.2 * Update dependencies from https://github.com/dotnet/sdk build 20230620.3 Microsoft.DotNet.ApiCompat.Task From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.6.23320.3 * Update dependencies from https://github.com/dotnet/llvm-project build 20230621.1 runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter From Version 14.0.0-alpha.1.23307.1 -> To Version 14.0.0-alpha.1.23321.1 * Update dependencies from https://github.com/dotnet/arcade build 20230620.3 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23320.3 * Update dependencies from https://github.com/dotnet/runtime-assets build 20230621.1 Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData From Version 8.0.0-beta.23307.1 -> To Version 8.0.0-beta.23321.1 * Update dependencies from https://github.com/dotnet/emsdk build 20230621.1 Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport From Version 8.0.0-preview.6.23312.1 -> To Version 8.0.0-preview.6.23321.1 * Disable failing runtime test ``` /Users/runner/work/1/s/src/tests/JIT/jit64/opt/rngchk/RngchkStress2.cs(527,796): error CS8078: An expression is too long or complex to compile [/Users/runner/work/1/s/src/tests/JIT/jit64/opt/rngchk/RngchkStress2_o.csproj] [/Users/runner/work/1/s/src/tests/build.proj] ``` Issue: #87879 * disable JIT/jit64/opt/cse/hugeSimpleExpr1.csproj * Use full name for the test being disabled * Update dependencies from https://github.com/dotnet/emsdk build 20230621.3 Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport From Version 8.0.0-preview.6.23312.1 -> To Version 8.0.0-preview.7.23321.3 * another try * Update dependencies from https://github.com/dotnet/arcade build 20230620.3 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23320.3 Dependency coherency updates Microsoft.SourceLink.GitHub,Microsoft.DotNet.XliffTasks From Version 8.0.0-beta.23252.2 -> To Version 8.0.0-beta.23314.2 (parent: Microsoft.DotNet.Arcade.Sdk * Update dependencies from https://github.com/dotnet/icu build 20230621.2 Microsoft.NETCore.Runtime.ICU.Transport From Version 8.0.0-preview.6.23312.1 -> To Version 8.0.0-preview.7.23321.2 * Update dependencies from https://github.com/dotnet/xharness build 20230621.2 Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit From Version 8.0.0-prerelease.23312.1 -> To Version 8.0.0-prerelease.23321.2 * Update dependencies from https://github.com/dotnet/runtime-assets build 20230621.1 Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData From Version 8.0.0-beta.23307.1 -> To Version 8.0.0-beta.23321.1 * Update dependencies from https://github.com/dotnet/hotreload-utils build 20230619.2 Microsoft.DotNet.HotReload.Utils.Generator.BuildTool From Version 8.0.0-alpha.0.23305.2 -> To Version 8.0.0-alpha.0.23319.2 * Update dependencies from https://github.com/dotnet/cecil build 20230619.2 Microsoft.DotNet.Cecil From Version 0.11.4-alpha.23312.1 -> To Version 0.11.4-alpha.23319.2 * Update dependencies from https://github.com/dotnet/sdk build 20230621.38 Microsoft.DotNet.ApiCompat.Task From Version 8.0.100-preview.6.23313.1 -> To Version 8.0.100-preview.7.23321.38 --------- Co-authored-by: Ankit Jain <[email protected]> Co-authored-by: vitek-karas <[email protected]>
@jcouv, thanks for quickly disabling the test. Are you looking into the rootcause of the failure? |
@jcouv My attempts at disabling the tests didn't quite work. Could you please take a look? |
Thanks for the ping. I'm taking a look. I wasn't able to repro yet. |
@radical I'm trying to repro this issue, but am unable so far. Looking at the code involved in the stack trace ( Some thoughts so far:
|
This PR upgraded the .NET SDK used to build the repo to .NET 8 Preview 5. This intermittent build error is likely caused by tiered PGO instrumentation that was enabled in .NET 8 Preview 5 by default. The PGO instrumentation may cause program to use different amount of stack space from run to run. |
Thanks @jkotas, that makes sense. Unassigned myself and marked the issue as "untriaged" so that it can be assigned to a new owner. |
cc @jakobbotsch (I think this will go away with new PGO collection/update) |
I think we should just simplify the test if it is expected that Roslyn will rely on stack for deeply nested input programs. Note that the failures are on osx-x64 which, IIRC, have threads with notoriously small stack limits. It is certainly expected from our side that new JIT changes may cause generated native code to use more stack. In this case it seems realistic that it is related to tiered PGO being enabled in preview 5. I would guess the source is new inlining as a result of having PGO data available. |
FWIW, the test has 193 nested for loops in it, and the stack trace posted above contains |
Guessing Roslyn is not alone here. |
Agreed, but I would expect this to be a much smaller class of applications than applications that use the thread pool. In any case the to idea make the stack limits consistent across platforms seems good to me. I would like to understand what exactly has changed since we are seeing this while building a number of different tests, even some innocent looking ones. I hit this while building https://github.com/dotnet/runtime/blob/261e3a40cd9faa240da82aacd8d821469703e339/src/tests/JIT/Methodical/VT/etc/ctor_recurse.cs locally today, and I have seen it on https://github.com/dotnet/runtime/blob/1aded3f65f6fd13a60eb43c191f4ea8aa27bf5dc/src/tests/JIT/Regression/JitBlue/Runtime_85602/Runtime_85602.cs in CI recently as well. These do not look super complex, so it's a weird coincidence if nothing major has changed. |
Historically we've seen this due to a combination of factors:
Taken together this can lead to the compiler blowing its stack where it previously did not. This typically plays out in a given .NET release by the following sequence of events:
Pretty sure we've seen this play out in runtime before but it's been a while.
I agree that neither of those look very complex. Those hitting the limits would, in my mind, be cause for investigation as to what changed. FWIW the compiler actually got significantly better in .NET 8 in terms of level of nesting we can handle. In most cases it improved by 4X compared to .NET 7. So this should actually be going the other direction. Always possible you hit a nesting path we don't test though. |
Minimal repro (it blows up even on Windows after certain iteration - looks like Tier0 codegen is fine): Prerequsites:
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.Emit;
class Program
{
const string repo = @"C:/prj/runtime";
const string config = "windows.x64.Release";
const string coreRoot = repo + $@"/artifacts/tests/coreclr/{config}/Tests/Core_Root/";
const string sourceFilePath = repo + @"/src/tests/JIT/jit64/opt/rngchk/RngchkStress2.cs";
static async Task Main()
{
string sourceCode = File.ReadAllText(sourceFilePath);
for (int i = 0; i < 100; i++)
{
const int stackSize = 384 * 1024;
var thread = new Thread(() => CompileToDll(sourceCode, "Output.dll"), stackSize);
thread.Start();
await Task.Delay(100);
thread.Join();
}
Console.WriteLine("Started compilation on background thread...");
Console.ReadLine();
}
private static void CompileToDll(string sourceCode, string outputDllPath)
{
SyntaxTree syntaxTree = CSharpSyntaxTree.ParseText(sourceCode);
string assemblyName = Path.GetRandomFileName();
CSharpCompilation compilation = CSharpCompilation.Create(
assemblyName,
syntaxTrees: new[] { syntaxTree },
references: new[] {
MetadataReference.CreateFromFile(coreRoot + "System.Private.CoreLib.dll"),
MetadataReference.CreateFromFile(coreRoot + "System.Runtime.dll"),
MetadataReference.CreateFromFile(coreRoot + "System.Console.dll")
},
options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary));
EmitResult result = compilation.Emit(outputDllPath);
if (result.Success)
{
Console.WriteLine($"DLL was successfully created at: {outputDllPath}");
}
else
{
Console.WriteLine("Compilation failed!");
foreach (Diagnostic diagnostic in result.Diagnostics)
if (diagnostic.Severity == DiagnosticSeverity.Error)
Console.WriteLine(diagnostic.GetMessage());
}
}
} |
One thing I noticed that If I spawn a new |
@EgorBo PAL doesn't attempt to override the default stack size except for MUSL Linuxes where it is so low that it is unusable for .NET (tens of kilobytes). But if the size is specified when creating the thread, it should be honored. I am not sure if I read your comment correctly. Did you mean that when you set stack size to 512kB on macOS, you only get 384 kB? |
I haven't tested explicit stack size on macOS (can try once I boot to it) but the default one seems to be 384kb. I was measuring the subraction of these two on both platforms. |
According to Apple's doc, the default stack size for the main thread is 8MB and for the secondary threads it is 512kB. However, the |
Note we already don't follow the default on Windows (we went from 1MB -> 1.5MB for all threads), I see no reason to not increase it for secondary threads on macOS also since 512kB is clearly unacceptably low when we expect 128kB to be used for stack traces, and another 128kB to be available for |
Would a PR to change the stack size on macOS be taken? We could also make all desktop platforms have consistent stack size if that's desired too. |
@hamarb123 I would be happy to accept a PR that unifies default secondary stack sizes on 64 bit platforms. Even for Windows where by an accidental change the default stack size was changed from 4MB to 1.5MB about 8 years ago (see #96347). |
Lowering the stack limit on Windows would almost certainly lead to customer dissatisfaction. The C# compiler is naturally recursive and it's limits in certain areas are tied to the default thread stack size. There are a non-trivial number of customers out there who run right on the edge of what we can support today (and we have extensive tests to make sure we don't regress this experience because of previous incidents). Any reduction in stack size would end up breaking our ability to build those customers code bases. |
@jaredpar I was definitely not suggesting to lower the current limit, we now have it set to 1.5MB, my point was whether we should move it to 4MB or just say 2MB. |
Gotcha
I was reading the second half of that and interpreting "be more conservative" as potentially considering a lower stack size. Definitely happy with any change that makes Mac bigger. |
If macOS is the only one giving us trouble, I would fix macOS to match Windows and leave it at that. The max stack size is a perf trade-off. The larger max stack size, the more (unused) memory is potentially committed to stacks. Growing max stack size is potentially replacing stack overflow with out of memory. Some algorithms (like our own async - look for |
Good point about the async stuff committing the stack space. |
Do we have these sorts of problems on Linux today, which uses 8MB for every thread? It's also worth mentioning, that we are pushing people to use the stack more and more every .NET version (which I think is a good thing), e.g., with I propose that we change Windows back to 4MB (which it used to be), or we could do 2MB for secondary threads if we think 4 is too high, and change macOS to match it:
|
FWIW The C# compiler uses |
Failing on
osx-x64 Release AllSubsets_Mono_Minijit_RuntimeTests minijit
:Failing build:
This was hit on #87522 .
Known issue validation
Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=315357
Result validation: ✅ Known issue matched with the provided build.
Report
Summary
The text was updated successfully, but these errors were encountered: