You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On Apple mobile CoreCLR (reproduced on maccatalyst-arm64, Release, ReadyToRun), JIT/Directed/tailcall/mutual_recursion crashes the Directed_do merged runner with a fatal stack overflow.
The test is compiled with F# tail calls (--tailcalls+) and depends on them. Its mutually recursive calls alternate between ReadyToRun code and interpreted code, and the tail calls are not honored across those transitions, so the native stack grows until the process aborts:
The test previously failed earlier on Apple, with FileNotFoundException for FSharp.Core, because the app bundle didn't include FSharp.Core. It now reaches this crash once FSharp.Core is bundled (#134767).
Configuration
Fails: maccatalyst-arm64 CoreCLR, Release, ReadyToRun (no JIT; code that isn't precompiled runs in the interpreter).
Passes: android-arm64 CoreCLR on the emulator, which has a JIT (Directed_do: 41 passed, 0 failed).
Description
On Apple mobile CoreCLR (reproduced on maccatalyst-arm64, Release, ReadyToRun),
JIT/Directed/tailcall/mutual_recursioncrashes theDirected_domerged runner with a fatal stack overflow.The test is compiled with F# tail calls (
--tailcalls+) and depends on them. Its mutually recursive calls alternate between ReadyToRun code and interpreted code, and the tail calls are not honored across those transitions, so the native stack grows until the process aborts:The test previously failed earlier on Apple, with
FileNotFoundExceptionfor FSharp.Core, because the app bundle didn't include FSharp.Core. It now reaches this crash once FSharp.Core is bundled (#134767).Configuration
Directed_do: 41 passed, 0 failed).Expected behavior
Tail calls between R2R and interpreted code don't grow the stack, and the test returns 100.
Notes
xharness reported
SUCCESSfor this crashing run:testEndSignalDetectedwas false and no results file was written. That will be tracked separately.Note
This issue was drafted with GitHub Copilot.