Frequent c1 compiler errors running IntelliJ with Openjdk 15 (JavaCallWrapper::JavaCallWrapper - failed: cannot make java calls from the native compiler)

Aleksei Voitylov aleksei.voitylov at bell-sw.com
Wed Jan 27 12:05:13 UTC 2021


Clemens, which version of IntelliJ are you on? I'm asking because
another manifestation of this issue was fixed in JBR-1884.

That said, I don't believe we have ruled out all possibilities for the
cause of these crashes with JDK-8217765. I plan to submit an issue with
another attempt to fix this on the jni.cpp side, but your stack seems to
show yet another problem.

-Aleksei

On 27/01/2021 14:46, Vladimir Ivanov wrote:
> (CCing hotspot-runtime-dev since it is related to nestmates support.)
>
> Hi Clemens,
>
> It does look very similar to JDK-8217765 [1], but the bug was fixed
> long time ago.
>
> Please, file new bug.
>
> Best regards,
> Vladimir Ivanov
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8217765
>
> On 27.01.2021 13:53, Clemens Eisserer wrote:
>> Hi,
>>
>> Since I started using IntelliJ for working on the java2d opengl
>> backend I
>> get internal errors in C1, in the method
>> JavaCallWrapper::JavaCallWrapper:
>> https://pastebin.com/rbNLeAvL
>> I observed those crashes with both - fedora bundled openjdk as well
>> as with
>> a build of adoptopenjdk:
>>
>> Fedora-33:
>>    openjdk version "15.0.1" 2020-10-20
>>    OpenJDK Runtime Environment 20.9 (build 15.0.1+9)
>> AdoptOpenJDK:
>>    openjdk version "15.0.2" 2021-01-19
>>    OpenJDK Runtime Environment AdoptOpenJDK (build 15.0.2+7)
>>
>> The crash log looks quite equal each time (log attached).
>>
>> I wonder, is this a known problem - is should I report it?
>>
>> Thanks, Clemens
>>
>> # Internal Error (javaCalls.cpp:60), pid=35643, tid=35656
>> # guarantee(thread->can_call_java()) failed: cannot make java calls from
>> the native compiler
>> #
>>
>> Current CompileTask:
>> C1: 485187 64127       3
>> com.intellij.codeInspection.sameParameterValue.SameParameterValueInspection$LocalSameParameterValueInspection$1::visitMethod
>>
>> (362 bytes)
>>
>> Stack: [0x00007fe2fc0fb000,0x00007fe2fc1fc000],  sp=0x00007fe2fc1f8fc0,
>>   free space=1015k
>> Native frames: (J=compiled Java code, A=aot compiled Java code,
>> j=interpreted, Vv=VM code, C=native code)
>> V  [libjvm.so+0x7ded64]  JavaCallWrapper::JavaCallWrapper(methodHandle
>> const&, Handle, JavaValue*, Thread*)+0x1c4
>> V  [libjvm.so+0x7e2253]  JavaCalls::call_helper(JavaValue*, methodHandle
>> const&, JavaCallArguments*, Thread*)+0x183
>> V  [libjvm.so+0x7e066c]  JavaCalls::call_special(JavaValue*, Handle,
>> Klass*, Symbol*, Symbol*, Handle, Handle, Thread*)+0x1cc
>> V  [libjvm.so+0xdfe55d]
>>   SystemDictionary::validate_protection_domain(InstanceKlass*, Handle,
>> Handle, Thread*)+0x20d
>> V  [libjvm.so+0xe0113c]
>>   SystemDictionary::resolve_instance_class_or_null(Symbol*, Handle,
>> Handle,
>> Thread*)+0xb1c
>> V  [libjvm.so+0xe012ea]
>>   SystemDictionary::resolve_instance_class_or_null_helper(Symbol*,
>> Handle,
>> Handle, Thread*)+0x2a
>> V  [libjvm.so+0xe026ce]  SystemDictionary::resolve_or_fail(Symbol*,
>> Handle,
>> Handle, bool, Thread*)+0x2e
>> V  [libjvm.so+0x598baf]  ConstantPool::klass_at_impl(constantPoolHandle
>> const&, int, bool, Thread*)+0xdf
>> V  [libjvm.so+0x7bf7e0]  ConstantPool::klass_at(int, Thread*)+0x60
>> V  [libjvm.so+0x7b9d17]  InstanceKlass::has_nest_member(InstanceKlass*,
>> Thread*) const+0x397
>> V  [libjvm.so+0x7bbbbe]  InstanceKlass::nest_host(Thread*) [clone
>> .part.349]+0x3ae
>> V  [libjvm.so+0x7bbd1c]
>>   InstanceKlass::has_nestmate_access_to(InstanceKlass*, Thread*)+0x4c
>> V  [libjvm.so+0xc5b707]  Reflection::verify_member_access(Klass const*,
>> Klass const*, Klass const*, AccessFlags, bool, bool, Thread*)+0x207
>> V  [libjvm.so+0xa17b21] 
>> LinkResolver::check_method_accessability(Klass*,
>> Klass*, Klass*, methodHandle const&, Thread*)+0x61
>> V  [libjvm.so+0xa18776]  LinkResolver::resolve_method(LinkInfo const&,
>> Bytecodes::Code, Thread*)+0x3e6
>> V  [libjvm.so+0xa1b947]
>>   LinkResolver::linktime_resolve_virtual_method(LinkInfo const&,
>> Thread*)+0x27
>> V  [libjvm.so+0xa1bbb2]
>>   LinkResolver::linktime_resolve_virtual_method_or_null(LinkInfo
>> const&)+0x32
>> V  [libjvm.so+0x4d137c] 
>> ciEnv::get_method_by_index_impl(constantPoolHandle
>> const&, int, Bytecodes::Code, ciInstanceKlass*)+0x3ec
>> V  [libjvm.so+0x4d1910]  ciEnv::get_method_by_index(constantPoolHandle
>> const&, int, Bytecodes::Code, ciInstanceKlass*)+0x310
>> V  [libjvm.so+0x4f58ee]  ciBytecodeStream::get_method(bool&,
>> ciSignature**)+0x11e
>> V  [libjvm.so+0x407323]  GraphBuilder::invoke(Bytecodes::Code)+0x33
>> V  [libjvm.so+0x409667]
>>   GraphBuilder::iterate_bytecodes_for_block(int)+0x10b7
>> V  [libjvm.so+0x40b0d4]  GraphBuilder::iterate_all_blocks(bool)+0x174
>> V  [libjvm.so+0x40cf30]  GraphBuilder::GraphBuilder(Compilation*,
>> IRScope*)+0x440
>> V  [libjvm.so+0x410a72]  IRScope::IRScope(Compilation*, IRScope*, int,
>> ciMethod*, int, bool)+0x1d2
>> V  [libjvm.so+0x4116b6]  IR::IR(Compilation*, ciMethod*, int)+0xa6
>> V  [libjvm.so+0x3f1586]  Compilation::build_hir() [clone .part.95]+0x166
>> V  [libjvm.so+0x3f1dd3]  Compilation::compile_java_method()+0x3a3
>> V  [libjvm.so+0x3f1f6f]  Compilation::compile_method()+0x12f
>> V  [libjvm.so+0x3f23cc]  Compilation::Compilation(AbstractCompiler*,
>> ciEnv*, ciMethod*, int, BufferBlob*, DirectiveSet*)+0x22c
>> V  [libjvm.so+0x3f2cae]  Compiler::compile_method(ciEnv*, ciMethod*,
>> int,
>> DirectiveSet*)+0xae
>> V  [libjvm.so+0x5720cc]
>>   CompileBroker::invoke_compiler_on_method(CompileTask*)+0xeec
>> V  [libjvm.so+0x572eb8]  CompileBroker::compiler_thread_loop()+0x5b8
>> V  [libjvm.so+0xe50f8a]  JavaThread::thread_main_inner()+0x1da
>> V  [libjvm.so+0xe55baf]  Thread::call_run()+0xff
>> V  [libjvm.so+0xbc77e7]  thread_native_entry(Thread*)+0xe7
>>



More information about the hotspot-compiler-dev mailing list