JDK-8257471 : fatal error: Fatal exception in JVMCI: Exception during JVMCI compiler initialization
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11,16
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2020-12-01
  • Updated: 2021-01-15
  • Resolved: 2020-12-02
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 11 JDK 16
11.0.11-oracleFixed 16 b27Fixed
Related Reports
Relates :  
Description
Test compiler/jvmci/TestEnableJVMCIProduct.java intermittently crashes with 
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (t:/workspace/open/src/hotspot/share/jvmci/jvmciRuntime.cpp:1102), pid=27204, tid=55816
#  fatal error: Fatal exception in JVMCI: Exception during JVMCI compiler initialization
#
# JRE version: Java(TM) SE Runtime Environment (16.0+25) (fastdebug build 16-ea+25-1633)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 16-ea+25-1633, mixed mode, sharing, tiered, jvmci, jvmci compiler, compressed oops, g1 gc, windows-amd64)
# Core dump will be written. Default location: T:\testoutput\test-support\jtreg_open_test_hotspot_jtreg_tier1\scratch\7\hs_err_pid27204.mdmp
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#

---------------  S U M M A R Y ------------

Command Line: -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:-UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+PrintFlagsFinal 

Host: Intel(R) Xeon(R) Platinum 8167M CPU @ 2.00GHz, 32 cores, 239G,  Windows Server 2016 , 64 bit Build 14393 (10.0.14393.2969)
Time: Tue Nov 24 15:41:32 2020 Etc elapsed time: 0.923634 seconds (0d 0h 0m 0s)

---------------  T H R E A D  ---------------

Current thread (0x00000240e1ae5630):  JavaThread "JVMCI CompilerThread0" daemon [_thread_in_vm, id=55816, stack(0x000000f152100000,0x000000f152200000)]


Current CompileTask:
JVMCI:    923  155       4       java.lang.String::hashCode (60 bytes)

Stack: [0x000000f152100000,0x000000f152200000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0xae66e1]  os::platform_print_native_stack+0xf1  (os_windows_x86.cpp:236)
V  [jvm.dll+0xd0d237]  VMError::report+0xfb7  (vmError.cpp:731)
V  [jvm.dll+0xd0eb5e]  VMError::report_and_die+0x7de  (vmError.cpp:1537)
V  [jvm.dll+0xd0f274]  VMError::report_and_die+0x64  (vmError.cpp:1328)
V  [jvm.dll+0x4ba27d]  report_fatal+0x9d  (debug.cpp:287)
V  [jvm.dll+0x86c021]  JVMCIRuntime::compile_method+0x3f1  (jvmciRuntime.cpp:1513)
V  [jvm.dll+0x48a82e]  CompileBroker::invoke_compiler_on_method+0x5be  (compileBroker.cpp:2264)
V  [jvm.dll+0x488538]  CompileBroker::compiler_thread_loop+0x458  (compileBroker.cpp:1993)
V  [jvm.dll+0xc9b0c7]  JavaThread::run+0x327  (thread.cpp:1780)
V  [jvm.dll+0xc92294]  Thread::call_run+0x1b4  (thread.cpp:399)
V  [jvm.dll+0xae4ebe]  thread_native_entry+0x10e  (os_windows.cpp:561)
C  [ucrtbase.dll+0x1f4a0]
C  [KERNEL32.DLL+0x84d4]
C  [ntdll.dll+0x6e851]


---------------  P R O C E S S  ---------------

Threads class SMR info:
_java_thread_list=0x00000240e29805c0, length=15, elements={
0x00000240e1abae10, 0x00000240e1abe340, 0x00000240e1adb150, 0x00000240e1ac29a0,
0x00000240e1ac4f90, 0x00000240e1ae2120, 0x00000240e1ae5630, 0x00000240e1ae6c40,
0x00000240e1aece30, 0x00000240e1c18dd0, 0x00000240e2832a70, 0x00000240e28f7070,
0x00000240e28f96d0, 0x00000240e28f7a90, 0x00000240e29cb0a0
}
_java_thread_list_alloc_cnt=20, _java_thread_list_free_cnt=18, _java_thread_list_max=16, _nested_thread_list_max=0
_tlh_cnt=37, _tlh_times=0, avg_tlh_time=0.00, _tlh_time_max=0
_deleted_thread_cnt=1, _deleted_thread_times=0, avg_deleted_thread_time=0.00, _deleted_thread_time_max=0
_delete_lock_wait_cnt=0, _delete_lock_wait_max=0
_to_delete_list_cnt=0, _to_delete_list_max=1

Java Threads: ( => current thread )
  0x00000240e1abae10 JavaThread "Reference Handler" daemon [_thread_blocked, id=28640, stack(0x000000f151b00000,0x000000f151c00000)]
  0x00000240e1abe340 JavaThread "Finalizer" daemon [_thread_blocked, id=43344, stack(0x000000f151c00000,0x000000f151d00000)]
  0x00000240e1adb150 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=28736, stack(0x000000f151d00000,0x000000f151e00000)]
  0x00000240e1ac29a0 JavaThread "Attach Listener" daemon [_thread_blocked, id=61772, stack(0x000000f151e00000,0x000000f151f00000)]
  0x00000240e1ac4f90 JavaThread "Service Thread" daemon [_thread_blocked, id=52564, stack(0x000000f151f00000,0x000000f152000000)]
  0x00000240e1ae2120 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=45856, stack(0x000000f152000000,0x000000f152100000)]
=>0x00000240e1ae5630 JavaThread "JVMCI CompilerThread0" daemon [_thread_in_vm, id=55816, stack(0x000000f152100000,0x000000f152200000)]
  0x00000240e1ae6c40 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=29044, stack(0x000000f152200000,0x000000f152300000)]
  0x00000240e1aece30 JavaThread "Sweeper thread" daemon [_thread_blocked, id=17112, stack(0x000000f152300000,0x000000f152400000)]
  0x00000240e1c18dd0 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=19812, stack(0x000000f152400000,0x000000f152500000)]
  0x00000240e2832a70 JavaThread "C1 CompilerThread1" daemon [_thread_blocked, id=9000, stack(0x000000f152500000,0x000000f152600000)]
  0x00000240e28f7070 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=25284, stack(0x000000f152600000,0x000000f152700000)]
  0x00000240e28f96d0 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=50104, stack(0x000000f152700000,0x000000f152800000)]
  0x00000240e28f7a90 JavaThread "C1 CompilerThread4" daemon [_thread_blocked, id=60560, stack(0x000000f152800000,0x000000f152900000)]
  0x00000240e29cb0a0 JavaThread "Notification Thread" daemon [_thread_blocked, id=63712, stack(0x000000f152900000,0x000000f152a00000)]

Other Threads:
  0x00000240e1ab8ba0 VMThread "VM Thread" [stack: 0x000000f151a00000,0x000000f151b00000] [id=44000] _threads_hazard_ptr=0x00000240e29805c0, _nested_threads_hazard_ptr_cnt=0
  0x00000240f2a71040 GCTaskThread "GC Thread#0" [stack: 0x000000f151500000,0x000000f151600000] [id=38396]
  0x00000240f2a81300 ConcurrentGCThread "G1 Main Marker" terminated
  0x00000240f2a84ed0 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000f151700000,0x000000f151800000] [id=14396]
  0x00000240fb5ee050 ConcurrentGCThread "G1 Refine#0" terminated
  0x00000240e18a4040 ConcurrentGCThread "G1 Service" terminated

Threads with active compile tasks:
JVMCI CompilerThread0     1167  155       4       java.lang.String::hashCode (60 bytes)

VM state: synchronizing (normal execution)

VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x00000240f2a1bc90] Threads_lock - owner thread: 0x00000240e1ab8ba0
[0x00000240f2a1d8e0] Heap_lock - owner thread: 0x00000240f2a269a0

Heap address: 0x0000000082000000, size: 30688 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
CDS archive(s) mapped at: [0x0000000800000000-0x0000000800c10000-0x0000000800c10000), size 12648448, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0.
Compressed class space mapped at: 0x0000000801000000-0x0000000841000000, reserved size: 1073741824
Narrow klass base: 0x0000000800000000, Narrow klass shift: 3, Narrow klass range: 0x100000000

GC Precious Log:
 CPUs: 32 total, 32 available
 Memory: 239G
 Large Page Support: Disabled
 NUMA Support: Disabled
 Compressed Oops: Enabled (Zero based)
 Heap Region Size: 16M
 Heap Min Capacity: 16M
 Heap Initial Capacity: 2G
 Heap Max Capacity: 30688M
 Pre-touch: Disabled
 Parallel Workers: 23
 Concurrent Workers: 6
 Concurrent Refinement Workers: 23
 Periodic GC: Disabled

Heap:
 garbage-first heap   total 2097152K, used 0K [0x0000000082000000, 0x0000000800000000)
  region size 16384K, 1 young (16384K), 0 survivors (0K)
 Metaspace       used 1419K, committed 1664K, reserved 1056768K
  class space    used 132K, committed 256K, reserved 1048576K

Comments
Changeset: 7e37c7c5 Author: Doug Simon <dnsimon@openjdk.org> Date: 2020-12-02 10:14:46 +0000 URL: https://git.openjdk.java.net/jdk/commit/7e37c7c5
02-12-2020

I can fix this but I was confused as to how my original change for JDK-8257220 made it through testing. I think the problem is that normal testing is done on a JDK build that still include Graal but the testing of promoted builds is done on a JDK that does not include Graal (as a result of JDK-8255616). Is there a good reason for this discrepancy [~kvn]? Wouldn't it make more sense for `--disable-jvm-feature-graal --disable-jvm-feature-aot` to be the default build configuration, not just in JIB based builds?
01-12-2020

[~dnsimon] All testing since b23 done without Graal. Message before crash: Exception during JVMCI compiler initialization jdk.vm.ci.common.JVMCIError: no JVMCI compiler selected: default compiler is not found at jdk.vm.ci.hotspot.HotSpotJVMCICompilerConfig$DummyCompilerFactory.compileMethod(jdk.internal.vm.ci@16-ea/HotSpotJVMCICompilerConfig.java:58) at jdk.vm.ci.hotspot.HotSpotJVMCICompilerConfig$DummyCompilerFactory.compileMethod(jdk.internal.vm.ci@16-ea/HotSpotJVMCICompilerConfig.java:48) at jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.compileMethod(jdk.internal.vm.ci@16-ea/HotSpotJVMCIRuntime.java:797) I think it is intermittent depending on triggering compilation with Graal. It is the same problem as I posted in https://git.openjdk.java.net/jdk/pull/1487 when you run with -Xcomp: java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler -Xcomp -version Exception during JVMCI compiler initialization jdk.vm.ci.common.JVMCIError: no JVMCI compiler selected: default compiler is not found at jdk.vm.ci.hotspot.HotSpotJVMCICompilerConfig$DummyCompilerFactory.compileMethod(jdk.internal.vm.ci@16-internal/HotSpotJVMCICompilerConfig.java:58) at jdk.vm.ci.hotspot.HotSpotJVMCICompilerConfig$DummyCompilerFactory.compileMethod(jdk.internal.vm.ci@16-internal/HotSpotJVMCICompilerConfig.java:48)
01-12-2020

Doug, could you please have a look?
01-12-2020

This seems to be the same kind of problem as JDK-8257220: an error in the processing at the Java level posts an exception which causes the VM code to abort. I'm not clear if the fix for 8257220 will also address the current case. Paging [~dnsimon].
01-12-2020