JVMCI supports deoptimizing in a synchronized method before the monitor has been acquired. This works by setting JavaThread::_pending_monitorenter and reading it in the interpreter deop entry.
Currently the code in the deopt entry point is only emitted if UseJVMCICompiler or UseAOT are enabled.
If EnableJVMCI is enabled but neither UseAOT or UseJVMCICompiler are enabled, this can lead to a crash or an exception since the monitorenter of a synchronized method compiled by Graal will not be performed.
The attached patch should resolve the issue.
Currently the code in the deopt entry point is only emitted if UseJVMCICompiler or UseAOT are enabled.
If EnableJVMCI is enabled but neither UseAOT or UseJVMCICompiler are enabled, this can lead to a crash or an exception since the monitorenter of a synchronized method compiled by Graal will not be performed.
The attached patch should resolve the issue.
- duplicates
-
JDK-8182740 [Graal] Crash in G1ParCopyClosure<(G1Barrier)0, (G1Mark)0, false>::do_oop(oopDesc**)
-
- Closed
-