JDK-8229001 : compiler/aot tests failing with GraalError: encoding out of range: 16
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 14
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2019-08-01
  • Updated: 2024-01-29
  • Resolved: 2019-09-24
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 14
14Resolved
Related Reports
Duplicate :  
Relates :  
Description
Some AOT tests are failing with the latest upstream Graal:

Error: Failed compilation: compiler.aot.SharedUsageTest.main([Ljava/lang/String;)V: org.graalvm.compiler.graph.GraalGraphError: org.graalvm.compiler.debug.GraalError: java.lang.AssertionError: encoding out of range: 16
	at lir instruction: B0@6 org.graalvm.compiler.lir.amd64.AMD64SaveRegistersOp [stack:32|QWORD, stack:456|QWORD, stack:448|QWORD, stack:440|QWORD, stack:432|QWORD, stack:424|QWORD, stack:416|QWORD, stack:408|QWORD, stack:400|QWORD, stack:392|QWORD, stack:384|QWORD, stack:376|QWORD, stack:368|QWORD, stack:360|QWORD, stack:352|DOUBLE, stack:344|DOUBLE, stack:336|DOUBLE, stack:328|DOUBLE, stack:320|DOUBLE, stack:312|DOUBLE, stack:304|DOUBLE, stack:296|DOUBLE, stack:288|DOUBLE, stack:280|DOUBLE, stack:272|DOUBLE, stack:264|DOUBLE, stack:256|DOUBLE, stack:248|DOUBLE, stack:240|DOUBLE, stack:232|DOUBLE, stack:224|DOUBLE, stack:216|DOUBLE, stack:208|DOUBLE, stack:200|DOUBLE, stack:192|DOUBLE, stack:184|DOUBLE, stack:176|DOUBLE, stack:168|DOUBLE, stack:160|DOUBLE, stack:152|DOUBLE, stack:144|DOUBLE, stack:136|DOUBLE, stack:128|DOUBLE, stack:120|DOUBLE, stack:112|DOUBLE, stack:104|DOUBLE, stack:96|MASK64, stack:88|MASK64, stack:80|MASK64, stack:72|MASK64, stack:64|MASK64, stack:56|MASK64, stack:48|MASK64, stack:40|MASK64] = SAVE_REGISTER savedRegisters: [null, rcx, rdx, rbx, rbp, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm16, xmm17, xmm18, xmm19, xmm20, xmm21, xmm22, xmm23, xmm24, xmm25, xmm26, xmm27, xmm28, xmm29, xmm30, xmm31, k0, k1, k2, k3, k4, k5, k6, k7]
[B0, B2, B1]
	at lir instruction: B0@6 org.graalvm.compiler.lir.amd64.AMD64SaveRegistersOp [stack:32|QWORD, stack:456|QWORD, stack:448|QWORD, stack:440|QWORD, stack:432|QWORD, stack:424|QWORD, stack:416|QWORD, stack:408|QWORD, stack:400|QWORD, stack:392|QWORD, stack:384|QWORD, stack:376|QWORD, stack:368|QWORD, stack:360|QWORD, stack:352|DOUBLE, stack:344|DOUBLE, stack:336|DOUBLE, stack:328|DOUBLE, stack:320|DOUBLE, stack:312|DOUBLE, stack:304|DOUBLE, stack:296|DOUBLE, stack:288|DOUBLE, stack:280|DOUBLE, stack:272|DOUBLE, stack:264|DOUBLE, stack:256|DOUBLE, stack:248|DOUBLE, stack:240|DOUBLE, stack:232|DOUBLE, stack:224|DOUBLE, stack:216|DOUBLE, stack:208|DOUBLE, stack:200|DOUBLE, stack:192|DOUBLE, stack:184|DOUBLE, stack:176|DOUBLE, stack:168|DOUBLE, stack:160|DOUBLE, stack:152|DOUBLE, stack:144|DOUBLE, stack:136|DOUBLE, stack:128|DOUBLE, stack:120|DOUBLE, stack:112|DOUBLE, stack:104|DOUBLE, stack:96|MASK64, stack:88|MASK64, stack:80|MASK64, stack:72|MASK64, stack:64|MASK64, stack:56|MASK64, stack:48|MASK64, stack:40|MASK64] = SAVE_REGISTER savedRegisters: [null, rcx, rdx, rbx, rbp, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm16, xmm17, xmm18, xmm19, xmm20, xmm21, xmm22, xmm23, xmm24, xmm25, xmm26, xmm27, xmm28, xmm29, xmm30, xmm31, k0, k1, k2, k3, k4, k5, k6, k7]
[B0, B2, B1]
	at node: 132|ResolveConstantStubCall

Comments
is_zombie is JDK-8229961 issue where JVMCIEnv::invalidate_nmethod_mirror() tries to lock nmethod before checking that it is alive. JDK-8212159 is for code in JVMTI.
22-08-2019

The is_zombie assert sounds like JDK-8212159.
12-08-2019

Spotted another failure mode with this test: # after -XX: or in .hotspotrc: SuppressErrorAt=t:/workspace/open/src/hotspot/share/code/nmethod.cpp:2165 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (t:/workspace/open/src/hotspot/share/code/nmethod.cpp:2165), pid=43692, tid=39492 # assert(zombie_ok || !nm->is_zombie()) failed: cannot lock a zombie method: 0000009731A4A910 # # JRE version: Java(TM) SE Runtime Environment (14.0+9) (fastdebug build 14-ea+9-284) # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 14-ea+9-284, mixed mode, sharing, tiered, jvmci, compressed oops, g1 gc, windows-amd64) # Core dump will be written. Default location: T:\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_compiler_graalunit\\scratch\\0\\hs_err_pid43692.mdmp # # An error report file with more information is saved as: # T:\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_compiler_graalunit\\scratch\\0\\hs_err_pid43692.log # # If you would like to submit a bug report, please visit: # http://bugreport.java.com/bugreport/crash.jsp # ]; stderr: [] exitValue = 1 java.lang.RuntimeException: Expected to get exit value of [0] at jdk.test.lib.process.OutputAnalyzer.shouldHaveExitValue(OutputAnalyzer.java:455) at compiler.graalunit.common.GraalUnitTestLauncher.main(GraalUnitTestLauncher.java:284) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:298) at java.base/java.lang.Thread.run(Thread.java:830) JavaTest Message: Test threw exception: java.lang.RuntimeException JavaTest Message: shutting down test result: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: Expected to get exit value of [0] test result: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: Expected to get exit value of [0]
08-08-2019

ILW = Compilation fails with Graal, when AOT compiling with Graal, no workaround = MMH = P3
05-08-2019

I believe this is a problem with running on a machine that support AVX512F. We're seeing the high XXM registers but the base assembler doesn't know how to deal with them.
02-08-2019