We're seeing intermittent SEGVs in JDKs with some newer GCC versions and combinations of options. It turns out that it's a pretty trivial error which has never been noticed before.
Thread::oops_do() does this:
void Thread::oops_do(OopClosure* f, CodeBlobClosure* cf) {
active_handles()->oops_do(f);
However, there is a window while a Thread is being constructed when active_handles() is NULL. GC can occur during this time period, and it's a matter of luck that we haven't seen this crash before.
|