JDK-8230397 : [lworld] C2 compilation fails with assert(projs->fallthrough_proj != __null) failed: must be found
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: repo-valhalla
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2019-08-30
  • Updated: 2024-07-18
  • Resolved: 2019-09-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
#  Internal Error (/oracle/valhalla2/open/src/hotspot/share/opto/callnode.cpp:969), pid=5239, tid=5253
#  assert(projs->fallthrough_proj != __null) failed: must be found

Current CompileTask:
C2:    749  164   !         Test::mainTest (761 bytes)

Stack: [0x00007fbe70c03000,0x00007fbe70d04000],  sp=0x00007fbe70cff2c0,  free space=1008k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x835c3a]  CallNode::extract_projections(bool, bool)+0x99a
V  [libjvm.so+0x8399d5]  AllocateNode::Ideal(PhaseGVN*, bool)+0x95
V  [libjvm.so+0x1554960]  PhaseIterGVN::transform_old(Node*)+0xb0
V  [libjvm.so+0x154ea2c]  PhaseIterGVN::optimize()+0x8c
V  [libjvm.so+0x9fd69f]  Compile::Optimize()+0x57f
V  [libjvm.so+0x9ff249]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x10b9
V  [libjvm.so+0x8217bd]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x10d
V  [libjvm.so+0xa0b904]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x334
V  [libjvm.so+0xa0c958]  CompileBroker::compiler_thread_loop()+0x4f8
V  [libjvm.so+0x18d14f6]  JavaThread::thread_main_inner()+0x1b6
V  [libjvm.so+0x18d6bb6]  Thread::call_run()+0xf6
V  [libjvm.so+0x14a5e2e]  thread_native_entry(Thread*)+0x10e
Comments
[~mdoerr], FYI, we have JDK-8336726 now that is similar and reproducible in mainline.
18-07-2024

We see this intermittently in a proprietary test. No reproducer, unfortunately. Only in 11.
20-06-2024

[~goetz] reported a similar issue in March already (I think you were in CC). I still think that this might well be a failure mode when the C2 IR is in an inconsistent state. IIRC, we added this to Valhalla because there we remove allocations much more aggressively. I don't think that can happen in mainline. Do you have a replay file or even a reproducer?
22-05-2024

The same assertion has recently been hit in OpenJDK 11 with the following stack snippet (since 2023-05-31, MacOS and linux): V [libjvm.dylib+0x372a30] report_vm_error(char const*, int, char const*, char const*, ...)+0x74 V [libjvm.dylib+0x215df4] CallNode::extract_projections(CallProjections*, bool, bool)+0x4c8 V [libjvm.dylib+0x131ec0] ArrayCopyNode::finish_transform(PhaseGVN*, bool, Node*, Node*)+0x184 V [libjvm.dylib+0x133b8c] ArrayCopyNode::Ideal(PhaseGVN*, bool)+0x710 V [libjvm.dylib+0x9281ac] PhaseIterGVN::transform_old(Node*)+0xf0 V [libjvm.dylib+0x927dd4] PhaseIterGVN::optimize()+0xb8
21-05-2024

http://hg.openjdk.java.net/valhalla/valhalla/rev/6840a94ad058
04-09-2019