-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
mac: Produce coredumps on segfault #46157
Conversation
This changes the mach exception server to ignore fatal SIGSEGVs, letting regular kernel processing handle it (by performing POSIX signal delivery and then subsequently coredumping), rather than quitting the process directly. There's probably some way to induce the kernel to perform core dumping directly from the exception server, but I think it'll be less confusing all around to just have segfaults take the standard path. Hoping this will help debug #46152.
Want to stick a |
I've verified that this produces core dumps locally. That doesn't mean the buildkite version works, but I'd rather merge this and then do that experiment in a separate PR. |
FWIW, it seems like this doesn't currently work on Buildkite, because there are no artifacts uploaded for https://buildkite.com/julialang/julia-master/builds/14263#018232a5-5eb0-4f3e-adb3-2a1ec111f781. But I agree that let's first merge this PR, and then work separately to get this working on Buildkite. |
Will this break the default stacktrace printer? |
|
No. The POSIX signal handling will print the stack trace:
|
|
Similar in spirit to #46157. We'd like to collect crashdumps when julia crashes on CI, but currently we just cleanly exit the pocess in this case. By continuing exception handling into the global crash handler, the OS's crash reporter gets invoked and can dump out a minidump for us. In the future, we may want to add our own crash reported, but this should hopefully help debug crashes for the moment.
Similar in spirit to #46157. We'd like to collect crashdumps when julia crashes on CI, but currently we just cleanly exit the pocess in this case. By continuing exception handling into the global crash handler, the OS's crash reporter gets invoked and can dump out a minidump for us. In the future, we may want to add our own crash reported, but this should hopefully help debug crashes for the moment.
This changes the mach exception server to ignore fatal SIGSEGVs, letting regular kernel processing handle it (by performing POSIX signal delivery and then subsequently coredumping), rather than quitting the process directly. There's probably some way to induce the kernel to perform core dumping directly from the exception server, but I think it'll be less confusing all around to just have segfaults take the standard path. Hoping this will help debug JuliaLang#46152.
This changes the mach exception server to ignore fatal SIGSEGVs, letting regular kernel processing handle it (by performing POSIX signal delivery and then subsequently coredumping), rather than quitting the process directly. There's probably some way to induce the kernel to perform core dumping directly from the exception server, but I think it'll be less confusing all around to just have segfaults take the standard path. Hoping this will help debug JuliaLang#46152.
This changes the mach exception server to ignore fatal SIGSEGVs,
letting regular kernel processing handle it (by performing POSIX
signal delivery and then subsequently coredumping), rather than
quitting the process directly. There's probably some way to
induce the kernel to perform core dumping directly from the
exception server, but I think it'll be less confusing all around
to just have segfaults take the standard path.
Hoping this will help debug #46152.