If we have a crash (segfault &etc) while holding one of G1's 'access' rank locks in a JVMCI compiler thread, we can deadlock (or recursively crash in a debug build). The problem is that printing the stack trace for such a thread typically prints an nmethod, which for JVMCI involves resolving a jweak. If that jweak resolve itself hits a case in the SATB barrier where the same 'access' lock is needed, we deadlock in a product build, or crash in the crash handler in a debug build. (Fortunately, the crash handler is pretty robust against such recursive failures.)
- relates to
-
JDK-8214315 G1: fatal error: acquiring lock SATB_Q_FL_lock/1 out of order with lock tty_lock/0
- Closed
-
JDK-8221360 Eliminate Shared_DirtyCardQ_lock
- Resolved