-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
[NativeAOT] Stackoverflow reporting on Linux #82334
Comments
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas Issue DetailsReproRecursion(1);
void Recursion(int x)
{
Recursion(x+1);
Recursion(x+1);
} Actual result
Expected result
(Reported by partner team.)
|
The change was reverted by #95415 |
It looks like all the crashes occurred when the SIGSEGV was hit while the GC was trying to suspend all threads. I'm not sure why that was causing crashes with the alternate stack but isn't causing crashes when it uses the regular stack. |
My (wild) guess is that it might be due to libunwind not being able to walk over the SIGSEGV frame when the handler is running on a different stack from the code where the sigsegv occured. In coreclr, we actually don't rely on libunwind over that boundary, we explicitly skip it using a context that we store in the sigsegv handler. See runtime/src/coreclr/pal/src/exception/seh-unwind.cpp Lines 669 to 679 in 62dcb12
|
Repro
Actual result
Segmentation fault
Expected result
Process is terminating due to StackOverflowException
(Reported by partner team.)
The text was updated successfully, but these errors were encountered: