-
Bug
-
Resolution: Fixed
-
P2
-
22
-
b23
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (systemDictionary.cpp:614), pid=55890, tid=55910
# guarantee(THREAD->can_call_java()) failed: can not load classes with compiler thread: class=com/oracle/truffle/api/frame/FrameSlotTypeException, classloader=jdk/internal/loader/ClassLoaders$AppClassLoader
#
Stack: [0x00007f8db5027000,0x00007f8db5228000], sp=0x00007f8db5221a80, free space=2026k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xe71246] SystemDictionary::resolve_instance_class_or_null(Symbol*, Handle, Handle, JavaThread*)+0x5e6 (systemDictionary.cpp:614)
V [libjvm.so+0xe72aae] SystemDictionary::resolve_or_fail(Symbol*, Handle, Handle, bool, JavaThread*)+0x5e
V [libjvm.so+0xf15bc6] VerificationType::resolve_and_check_assignability(InstanceKlass*, Symbol*, Symbol*, bool, bool, bool, JavaThread*)+0x2b6
V [libjvm.so+0xf162d7] VerificationType::is_reference_assignable_from(VerificationType const&, ClassVerifier*, bool, JavaThread*) const+0x147
V [libjvm.so+0xf2bdfc] StackMapFrame::pop_stack(VerificationType, JavaThread*)+0x9c
V [libjvm.so+0xf25ab2] ClassVerifier::verify_method(methodHandle const&, JavaThread*)+0x1392
V [libjvm.so+0xf2b37d] ClassVerifier::verify_class(JavaThread*)+0xed
V [libjvm.so+0xf2b79f] Verifier::verify(InstanceKlass*, bool, JavaThread*)+0x31f
V [libjvm.so+0x8c4c02] InstanceKlass::link_class_impl(JavaThread*)+0x432
V [libjvm.so+0x9fa57b] c2v_ensureLinked(JNIEnv_*, _jobject*, _jobject*, long)+0x2eb
C [libjvmcicompiler.so+0x18528d3] void jdk.vm.ci.hotspot.CompilerToVM::ensureLinked(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl*, long)+0xc3
C [libjvmcicompiler.so+0x18527de] void jdk.vm.ci.hotspot.CompilerToVM::ensureLinked(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl*)+0x2e
C [libjvmcicompiler.so+0x18b5416] void jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl::link()+0xa6
C [libjvmcicompiler.so+0x78d8e2] jdk.vm.ci.meta.ResolvedJavaType* com.oracle.svm.graal.hotspot.libgraal.truffle.HSTruffleCompilerRuntime::resolveType(jdk.vm.ci.meta.MetaAccessProvider*, java.lang.String*, boolean)+0xc2
C [libjvmcicompiler.so+0x16decde] jdk.graal.compiler.truffle.host.TruffleKnownHostTypes::TruffleKnownHostTypes(com.oracle.truffle.compiler.TruffleCompilerRuntime*, jdk.vm.ci.meta.MetaAccessProvider*)+0x6e
C [libjvmcicompiler.so+0x79079a] com.oracle.svm.graal.hotspot.libgraal.truffle.LibGraalTruffleHostEnvironment* com.oracle.svm.core.code.FactoryMethodHolder::LibGraalTruffleHostEnvironment_constructor_292ceb0730867d730484287f2bd5cff3c9dce00f(com.oracle.truffle.compiler.TruffleCompilerRuntime*, jdk.vm.ci.meta.MetaAccessProvider*)+0x9a
C [libjvmcicompiler.so+0x791365] jdk.graal.compiler.truffle.host.TruffleHostEnvironment* com.oracle.svm.graal.hotspot.libgraal.truffle.LibGraalTruffleHostEnvironmentLookup::lookup(jdk.vm.ci.meta.ResolvedJavaType*)+0x105
As ofJDK-8318694, only a few select C2V entry points in jvmciCompilerToVM.cpp can make Java calls. The ensureLinked method was not included but needs to be as it is called from a Truffle context executing on a Compiler thread as shown above.
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (systemDictionary.cpp:614), pid=55890, tid=55910
# guarantee(THREAD->can_call_java()) failed: can not load classes with compiler thread: class=com/oracle/truffle/api/frame/FrameSlotTypeException, classloader=jdk/internal/loader/ClassLoaders$AppClassLoader
#
Stack: [0x00007f8db5027000,0x00007f8db5228000], sp=0x00007f8db5221a80, free space=2026k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xe71246] SystemDictionary::resolve_instance_class_or_null(Symbol*, Handle, Handle, JavaThread*)+0x5e6 (systemDictionary.cpp:614)
V [libjvm.so+0xe72aae] SystemDictionary::resolve_or_fail(Symbol*, Handle, Handle, bool, JavaThread*)+0x5e
V [libjvm.so+0xf15bc6] VerificationType::resolve_and_check_assignability(InstanceKlass*, Symbol*, Symbol*, bool, bool, bool, JavaThread*)+0x2b6
V [libjvm.so+0xf162d7] VerificationType::is_reference_assignable_from(VerificationType const&, ClassVerifier*, bool, JavaThread*) const+0x147
V [libjvm.so+0xf2bdfc] StackMapFrame::pop_stack(VerificationType, JavaThread*)+0x9c
V [libjvm.so+0xf25ab2] ClassVerifier::verify_method(methodHandle const&, JavaThread*)+0x1392
V [libjvm.so+0xf2b37d] ClassVerifier::verify_class(JavaThread*)+0xed
V [libjvm.so+0xf2b79f] Verifier::verify(InstanceKlass*, bool, JavaThread*)+0x31f
V [libjvm.so+0x8c4c02] InstanceKlass::link_class_impl(JavaThread*)+0x432
V [libjvm.so+0x9fa57b] c2v_ensureLinked(JNIEnv_*, _jobject*, _jobject*, long)+0x2eb
C [libjvmcicompiler.so+0x18528d3] void jdk.vm.ci.hotspot.CompilerToVM::ensureLinked(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl*, long)+0xc3
C [libjvmcicompiler.so+0x18527de] void jdk.vm.ci.hotspot.CompilerToVM::ensureLinked(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl*)+0x2e
C [libjvmcicompiler.so+0x18b5416] void jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl::link()+0xa6
C [libjvmcicompiler.so+0x78d8e2] jdk.vm.ci.meta.ResolvedJavaType* com.oracle.svm.graal.hotspot.libgraal.truffle.HSTruffleCompilerRuntime::resolveType(jdk.vm.ci.meta.MetaAccessProvider*, java.lang.String*, boolean)+0xc2
C [libjvmcicompiler.so+0x16decde] jdk.graal.compiler.truffle.host.TruffleKnownHostTypes::TruffleKnownHostTypes(com.oracle.truffle.compiler.TruffleCompilerRuntime*, jdk.vm.ci.meta.MetaAccessProvider*)+0x6e
C [libjvmcicompiler.so+0x79079a] com.oracle.svm.graal.hotspot.libgraal.truffle.LibGraalTruffleHostEnvironment* com.oracle.svm.core.code.FactoryMethodHolder::LibGraalTruffleHostEnvironment_constructor_292ceb0730867d730484287f2bd5cff3c9dce00f(com.oracle.truffle.compiler.TruffleCompilerRuntime*, jdk.vm.ci.meta.MetaAccessProvider*)+0x9a
C [libjvmcicompiler.so+0x791365] jdk.graal.compiler.truffle.host.TruffleHostEnvironment* com.oracle.svm.graal.hotspot.libgraal.truffle.LibGraalTruffleHostEnvironmentLookup::lookup(jdk.vm.ci.meta.ResolvedJavaType*)+0x105
As of
- relates to
-
JDK-8318694 [JVMCI] disable can_call_java in most contexts for libjvmci compiler threads
- Closed
- links to
-
Commit openjdk/jdk/9ac6ac86
-
Review(master) openjdk/jdk/16530