JDK-8327172 : C2: assert(found) failed: every non-cfg node must have an input that is also inside the loop
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 23
  • Priority: P3
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2024-03-03
  • Updated: 2024-03-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.
JDK 23
23Unresolved
Related Reports
Relates :  
Description
The following test failed in the JDK23 CI:

applications/javafuzzer/BigTest.java

Here's a snippet from the log file:

Summary of the JavaFuzzer run:
------------------------------
Host:     jpg-mac-x64-623.oraclecorp.com
Tests:    12 x 300
Args:     -conf config.yml

Started  at: Sat Mar  2 13:33:26 GMT 2024


r9- 300: 158 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 142 Reference Java failures
r7- 300: 170 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 130 Reference Java failures
r2- 300: 182 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 118 Reference Java failures
r11- 300: 172 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 128 Reference Java failures
r3- 300: 173 passed, 1 crashes, 0 fails, 0 hangs, 0 incorrect tests, 126 Reference Java failures
r5- 300: 178 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 122 Reference Java failures
r4- 300: 169 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 131 Reference Java failures
r12- 300: 171 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 129 Reference Java failures
r8- 300: 174 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 126 Reference Java failures
r6- 300: 159 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 141 Reference Java failures
r10- 300: 173 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 127 Reference Java failures
r1- 300: 169 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 131 Reference Java failures

Finished at: Sun Mar  3 03:58:10 GMT 2024


#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/System/Volumes/Data/mesos/work_dir/slaves/412fde1c-3e26-4c3d-b41e-bab008e2c85d-S7417/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/5e6fca58-0a7d-4372-bd7e-571b440fd538/runs/8b916779-a0ea-4a5e-b1c4-9fdf957d2062/workspace/open/src/hotspot/share/opto/superword.cpp:2970), pid=20077, tid=24323
#  assert(found) failed: every non-cfg node must have an input that is also inside the loop
#
# JRE version: Java(TM) SE Runtime Environment (23.0+13) (fastdebug build 23-ea+13-901)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 23-ea+13-901, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, bsd-amd64)
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#

---------------  S U M M A R Y ------------


----------System.err:(15/908)----------
java.lang.RuntimeException: assertEquals expected: 1 but was: 2
	at jdk.test.lib.Asserts.fail(Asserts.java:691)
	at jdk.test.lib.Asserts.assertEquals(Asserts.java:204)
	at jdk.test.lib.Asserts.assertEquals(Asserts.java:191)
	at applications.javafuzzer.JavaFuzzerRunner.reportResults(JavaFuzzerRunner.java:264)
	at applications.javafuzzer.JavaFuzzerRunner.runWithConfigurations(JavaFuzzerRunner.java:285)
	at applications.javafuzzer.JavaFuzzerRunner.main(JavaFuzzerRunner.java:307)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:333)
	at java.base/java.lang.Thread.run(Thread.java:1575)

JavaTest Message: Test threw exception: java.lang.RuntimeException
JavaTest Message: shutting down test

result: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: assertEquals expected: 1 but was: 2

Here's the crashing thread's stack:

---------------  T H R E A D  ---------------

Current thread (0x00007ff5f7015610):  JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=24323, stack(0x0000700007045000,0x0000700007145000) (1024K)]


Current CompileTask:
C2:376    4 %  b        Test::mainTest @ 46 (336 bytes)

Stack: [0x0000700007045000,0x0000700007145000],  sp=0x0000700007140ae0,  free space=1006k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.dylib+0x1239374]  VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x5a4  (superword.cpp:2970)
V  [libjvm.dylib+0x1239b48]  VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x38
V  [libjvm.dylib+0x652ce4]  report_vm_error(char const*, int, char const*, char const*, ...)+0xb4
V  [libjvm.dylib+0x1112e76]  VLoopBody::construct()+0xd56
V  [libjvm.dylib+0x11f5437]  VLoopAnalyzer::setup_submodules()+0xc7
V  [libjvm.dylib+0xd7342f]  PhaseIdealLoop::auto_vectorize(IdealLoopTree*, VSharedData&)+0x21f
V  [libjvm.dylib+0xd54413]  PhaseIdealLoop::build_and_optimize()+0xcd3
V  [libjvm.dylib+0x5b81a8]  PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x58
V  [libjvm.dylib+0x5b865d]  Compile::optimize_loops(PhaseIterGVN&, LoopOptsMode)+0x6d
V  [libjvm.dylib+0x5b173f]  Compile::Optimize()+0xb4f
V  [libjvm.dylib+0x5af78b]  Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x161b
V  [libjvm.dylib+0x479b28]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1b8
V  [libjvm.dylib+0x5cf95f]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0xaaf
V  [libjvm.dylib+0x5ceaa7]  CompileBroker::compiler_thread_loop()+0x357
V  [libjvm.dylib+0x9b0305]  JavaThread::thread_main_inner()+0x1a5
V  [libjvm.dylib+0x1180dbc]  Thread::call_run()+0xbc
V  [libjvm.dylib+0xefde42]  thread_native_entry(Thread*)+0x122
C  [libsystem_pthread.dylib+0x61d3]  _pthread_start+0x7d
C  [libsystem_pthread.dylib+0x1bd3]  thread_start+0xf
Comments
Starts to fail after JDK-8325064. [~epeter] can you have a look?
04-03-2024

ILW = Assertion in Superword code, single fuzzer failure, possibly disable compilation of affected method or use -XX:-UseSuperword = HLM = P3
04-03-2024

Attaching reduced version Reduced.java: $ java -XX:CompileCommand=compileonly,*Reduced*::* -XX:-TieredCompilation -Xbatch -XX:PerMethodTrapLimit=0 -XX:UseAVX=2 Reduced.java Original and reduced version require UseAVX=2. It does not reproduced on a system with UseAVX=3 as default.
04-03-2024