Long story short: stop-the-world briefly resets SIGSEGV handler to SIG_DFL. This breaks programs that handle and continue after SIGSEGV (namely JVM). See the test and comments for details.
Details
Details
Diff Detail
Diff Detail
Event Timeline
lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc | ||
---|---|---|
253 | Why did you remove this? | |
268 | We shouldn't ever run TracerThreadDieCallback() from other threads. It wouldn't work anyway. I think TracerThreadDieCallback() should check that internal_getpid() == stoptheworld_tracer_pid. If not, just call the old callback. |
Why did you remove this?