JDK-8361390 : [lworld] Assert during C2 compilation because EA does not properly handle null-free arrays
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: repo-valhalla
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2025-07-04
  • Updated: 2025-07-04
  • Resolved: 2025-07-04
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.
Other
repo-valhallaFixed
Related Reports
Relates :  
Description
I found this when disabling preloading for stress testing.

# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/oracle/valhalla/open/src/hotspot/share/opto/compile.cpp:1709), pid=3361040, tid=3361057
#  assert(flat != TypePtr::BOTTOM) failed: cannot alias-analyze an untyped ptr: adr_type = null+24
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-lworld5ea-LTS-2025-05-22-1214417.tobias...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-lworld5ea-LTS-2025-05-22-1214417.tobias..., mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0xb355ec]  Compile::find_alias_type(TypePtr const*, bool, ciField*, bool) [clone .part.0]+0x30c

Current CompileTask:
C2:2892 1457    b  4       compiler.valhalla.inlinetypes.TestArrays::test152 (22 bytes)

Stack: [0x000079e9bb000000,0x000079e9bb100000],  sp=0x000079e9bb0fa880,  free space=1002k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xb355ec]  Compile::find_alias_type(TypePtr const*, bool, ciField*, bool) [clone .part.0]+0x30c  (compile.cpp:1709)
V  [libjvm.so+0x1559d5c]  PhaseIdealLoop::get_late_ctrl_with_anti_dep(LoadNode*, Node*, Node*)+0x4c  (compile.hpp:978)
V  [libjvm.so+0x155b4d1]  PhaseIdealLoop::get_late_ctrl(Node*, Node*)+0xf1  (loopnode.cpp:6075)
V  [libjvm.so+0x155b720]  PhaseIdealLoop::build_loop_late_post_work(Node*, bool)+0x210  (loopnode.cpp:6463)
V  [libjvm.so+0x155d73a]  PhaseIdealLoop::build_loop_late(VectorSet&, Node_List&, Node_Stack&)+0x17a  (loopnode.cpp:6351)
V  [libjvm.so+0x155e0af]  PhaseIdealLoop::build_and_optimize()+0x71f  (loopnode.cpp:4751)
V  [libjvm.so+0xb5ab10]  PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x4c0  (loopnode.hpp:1162)
V  [libjvm.so+0xb543f8]  Compile::Optimize()+0x748  (compile.cpp:2937)
V  [libjvm.so+0xb57bff]  Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1fef  (compile.cpp:874)
V  [libjvm.so+0x96de74]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x484  (c2compiler.cpp:142)
V  [libjvm.so+0xb658b8]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0xb58  (compileBroker.cpp:2307)
V  [libjvm.so+0xb66a78]  CompileBroker::compiler_thread_loop()+0x568  (compileBroker.cpp:1951)
V  [libjvm.so+0x10e0bbb]  JavaThread::thread_main_inner()+0x13b  (javaThread.cpp:774)
V  [libjvm.so+0x1b5a746]  Thread::call_run()+0xb6  (thread.cpp:231)
V  [libjvm.so+0x17c63f8]  thread_native_entry(Thread*)+0x128  (os_linux.cpp:875)


# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/oracle/valhalla/open/src/hotspot/cpu/x86/macroAssembler_x86.cpp:446), pid=3361353, tid=3361357
#  fatal error: DEBUG MESSAGE: dead path discovered by TypeNode during igvn
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-lworld5ea-LTS-2025-05-22-1214417.tobias...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-lworld5ea-LTS-2025-05-22-1214417.tobias..., mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x15b3705]  MacroAssembler::debug64(char*, long, long*)+0x45

V  [libjvm.so+0x15b3705]  MacroAssembler::debug64(char*, long, long*)+0x45  (macroAssembler_x86.cpp:446)
J 1439 c2 compiler.valhalla.inlinetypes.TestArrays.test153()Lcompiler/valhalla/inlinetypes/TestArrays$MyValue153; (22 bytes) @ 0x00007bb660c2c5dd [0x00007bb660c2c5a0+0x000000000000003d]
j  compiler.valhalla.inlinetypes.TestArrays.test153_verifier()V+1
j  java.lang.invoke.LambdaForm$DMH+0x00000000390a8000.invokeVirtual(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base
j  java.lang.invoke.LambdaForm$MH+0x000000003910ac00.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+35 java.base
J 1438 c1 jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base (92 bytes) @ 0x00007bb659220984 [0x00007bb65921f120+0x0000000000001864]
J 1437 c1 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base (108 bytes) @ 0x00007bb65921ee14 [0x00007bb65921e820+0x00000000000005f4]
j  compiler.lib.ir_framework.test.CustomRunTest.invokeTest()V+49
j  compiler.lib.ir_framework.test.AbstractTest.run()V+37
j  compiler.lib.ir_framework.test.CustomRunTest.run()V+59
j  compiler.lib.ir_framework.test.TestVM.runTests()V+198
j  compiler.lib.ir_framework.test.TestVM.start()V+9
j  compiler.lib.ir_framework.test.TestVM.main([Ljava/lang/String;)V+38
v  ~StubRoutines::call_stub 0x00007bb660460001

Comments
A pull request was submitted for review. Branch: lworld URL: https://git.openjdk.org/valhalla/pull/1501 Date: 2025-07-04 07:52:05 +0000
04-07-2025