runtime: `JIT/jit64/opt/rngchk/RngchkStress2.cs` failing to build with `error CS8078: An expression is too long or complex to compile`
Failing on osx-x64 Release AllSubsets_Mono_Minijit_RuntimeTests minijit:
/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]
##[error]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]
This was hit on https://github.com/dotnet/runtime/pull/87522 .
{
"ErrorMessage": "An expression is too long or complex to compile",
"ErrorPattern": "",
"BuildRetry": false,
"ExcludeConsoleLog": false
}
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
| Build | Definition | Step Name | Console log | Pull Request |
|---|---|---|---|---|
| 509010 | dotnet/runtime | Build Tests | Log | |
| 504209 | dotnet/runtime | Build Tests | Log | |
| 496610 | dotnet/runtime | Build Tests | Log | |
| 492198 | dotnet/runtime | Build Tests | Log | dotnet/runtime#95758 |
| 489030 | dotnet/runtime | Build Tests | Log | |
| 482128 | dotnet/runtime | Build Tests | Log |
Summary
| 24-Hour Hit Count | 7-Day Hit Count | 1-Month Count |
|---|---|---|
| 0 | 1 | 6 |
About this issue
- Original URL
- State: open
- Created a year ago
- Comments: 37 (37 by maintainers)
Commits related to this issue
- 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... — committed to dotnet/runtime by radical a year ago
- [main] Update dependencies from 10 repositories (#87522) * Update dependencies from https://github.com/dotnet/arcade build 20230612.4 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Arc... — committed to dotnet/runtime by dotnet-maestro[bot] a year ago
- Disable building of tests with build breaks Related to #87879 — committed to jkotas/runtime by jkotas a year ago
- Disable building of tests with build breaks Related to #87879 — committed to jkotas/runtime by jkotas a year ago
- JIT: Remove 50 levels of nesting from a range check stress test Fix #87879 — committed to jakobbotsch/runtime by jakobbotsch a year ago
- Disable building of tests with build breaks (#88094) Related to #87879 — committed to dotnet/runtime by jkotas a year ago
I think .Net should just guarantee some minimum stack size (like 2MB) on all platforms for consistency.
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.
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.