JDK-8145333 : -XX:+EnableJVMCI -XX:+UseJVMCICompiler -XX:-EnableJVMCI makes JVM crash
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2015-12-14
  • Updated: 2017-08-11
  • Resolved: 2016-02-23
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9 b110Fixed
Related Reports
Relates :  
Description
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x000000010a45db93, pid=79117, tid=7171
#
# JRE version: Java(TM) SE Runtime Environment (9.0) (build 9-internal+0-2015-12-10-192945.cthaling.aot)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (9-internal+0-2015-12-10-192945.cthaling.aot, mixed mode, tiered, jvmci compiler, compressed oops, g1 gc, bsd-amd64)
# Problematic frame:
# V  [libjvm.dylib+0x3a7b93]  CompileBroker::init_compiler_sweeper_threads(int, int)+0xcf
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

Stack: [0x000000010b2c1000,0x000000010b3c1000],  sp=0x000000010b3c0aa0,  free space=1022k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.dylib+0x3a7b93]  CompileBroker::init_compiler_sweeper_threads(int, int)+0xcf
V  [libjvm.dylib+0x3a76e6]  CompileBroker::compilation_init()+0x19e
V  [libjvm.dylib+0xa286dc]  Threads::create_vm(JavaVMInitArgs*, bool*)+0x848
V  [libjvm.dylib+0x6270e2]  JNI_CreateJavaVM+0xa1
C  [java+0x3c2e]  JavaMain+0x11a
C  [libsystem_c.dylib+0x14772]  _pthread_start+0x147
C  [libsystem_c.dylib+0x11a1]  thread_start+0xd

Comments
Yes Chris. Thank you.
09-02-2016

[~jcm], can you take this one?
08-02-2016

The discussion in JDK-8145357 led to the conclusion that we have to handle +UseJVMCICompiler being dependent on +EnableJVMCI in an explicit manner.
08-02-2016

These tests are being run with -XX:+EnableJVMCI -XX:+UseJVMCICompiler -XX:-EnableJVMCI because of the combination of the jtreg flags and the test flags themselves. The initialization of _compilers[1] is only done if !UseJVMCICompiler or EnableJVMCI && UseJVMCICompiler so with those flag settings it never gets initialized and the tests SEGV. Shouldn't it simply be an error to use that set of flags?
12-01-2016