Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8182755

[JVMCI] Deoptimization in synchronized methods can lead to a crash or exception when using EnableJVMCI but not UseJVMCICompiler

    XMLWordPrintable

    Details

    • Subcomponent:
    • Resolved In Build:
      b33

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              gdub Gilles Duboscq
              Reporter:
              gdub Gilles Duboscq
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: