JDK-8339171 : javafuzzer/BigTest.java fails with difference in rt_out_C2_STRESS.diff
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 19,21,23,24
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: os_x
  • CPU: aarch64
  • Submitted: 2024-08-28
  • Updated: 2024-11-28
  • Resolved: 2024-11-28
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 25
25Resolved
Related Reports
Duplicate :  
Description
The following test failed in the JDK24 CI:

applications/javafuzzer/BigTest.java

Here's a snippet from the log file:

#section:driver
----------messages:(7/309)----------
command: driver applications.javafuzzer.JavaFuzzerRunner -NT 300
reason: User specified action: run driver/timeout=100000 applications.javafuzzer.JavaFuzzerRunner -NT 300 
started: Wed Aug 28 04:40:52 GMT 2024
Mode: agentvm
Agent id: 2
finished: Wed Aug 28 10:46:49 GMT 2024
elapsed time (seconds): 21956.653
----------configuration:(20/3591)----------

<snip>

----------System.out:(31/3338)----------
For random generator using seed: 1424347129080500601
To re-run test with same seed value please add "-Djdk.test.lib.random.seed=1424347129080500601" to command line.
[DBG] Created generator string: '/System/Volumes/Data/mesos/work_dir/jib-master/install/jdk-24+13-1355/macosx-aarch64-debug.jdk/jdk-24/fastdebug/bin/java --module-path /System/Volumes/Data/mesos/work_dir/jib-master/install/org/jruby/jruby-dist/9.2.12.0/jruby-dist-9.2.12.0-bin.zip/jruby-9.2.12.0/lib/jruby.jar --add-opens java.base/sun.nio.ch=org.jruby.dist --add-opens java.base/java.io=org.jruby.dist --enable-native-access=org.jruby.dist -Djruby.home=/System/Volumes/Data/mesos/work_dir/jib-master/install/org/jruby/jruby-dist/9.2.12.0/jruby-dist-9.2.12.0-bin.zip/jruby-9.2.12.0 -Djruby.lib=/System/Volumes/Data/mesos/work_dir/jib-master/install/org/jruby/jruby-dist/9.2.12.0/jruby-dist-9.2.12.0-bin.zip/jruby-9.2.12.0/lib org.jruby.Main -W0 -I /System/Volumes/Data/mesos/work_dir/jib-master/install/com/oracle/jpg/bigapps/javafuzzer/javafuzzer/3.4/javafuzzer-3.4.zip/rb /System/Volumes/Data/mesos/work_dir/jib-master/install/com/oracle/jpg/bigapps/javafuzzer/javafuzzer/3.4/javafuzzer-3.4.zip/rb/Fuzzer.rb -f /System/Volumes/Data/mesos/work_dir/jib-master/install/com/oracle/jpg/bigapps/javafuzzer/javafuzzer/3.4/javafuzzer-3.4.zip/rb/config.yml'
Using the following path for FailureHandler: '/System/Volumes/Data/mesos/work_dir/jib-master/install/jdk-24+13-1355/macosx-aarch64-debug.test/failure_handler/jtregFailureHandler.jar'
Starting JavaFuzzer: '/bin/bash /System/Volumes/Data/mesos/work_dir/jib-master/install/com/oracle/jpg/bigapps/javafuzzer/javafuzzer/3.4/javafuzzer-3.4.zip/mrt.sh -R /System/Volumes/Data/mesos/work_dir/slaves/6bbe0543-8c5a-457e-b0ca-dfa2833be967-S6230/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/84bda442-c75f-4fca-a491-8c45c11325fa/runs/96188bd7-2f86-4bb8-bbc3-b990cf484eff/testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_javafuzzer_BigTest_java/scratch/0 -NT 300 -NP 8 -A -conf config.yml'
[2024-08-28T04:40:58.324060Z] Gathering output for process 84371
[2024-08-28T04:40:58.343619Z] Waiting for completion for process 84371
[2024-08-28T10:46:49.015103Z] Waiting for completion finished for process 84371
Output and diagnostic info for process 84371 was saved into 'pid-84371-output.log'

Summary of the JavaFuzzer run:
------------------------------
Host:     jpg-mac-arm-787.oraclecorp.com
Tests:    8 x 300
Args:     -conf config.yml

Started  at: Wed Aug 28 04:40:58 GMT 2024


r6- 300: 226 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 74 Reference Java failures
r7- 300: 212 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 88 Reference Java failures
r8- 300: 210 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 90 Reference Java failures
r5- 300: 216 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 84 Reference Java failures
r2- 300: 209 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 91 Reference Java failures
r4- 300: 212 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 88 Reference Java failures
r3- 300: 202 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 98 Reference Java failures
r1- 300: 196 passed, 0 crashes, 1 fails, 0 hangs, 0 incorrect tests, 103 Reference Java failures

Finished at: Wed Aug 28 10:46:48 GMT 2024


----------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:231)
	at applications.javafuzzer.JavaFuzzerRunner.runWithConfigurations(JavaFuzzerRunner.java:252)
	at applications.javafuzzer.JavaFuzzerRunner.main(JavaFuzzerRunner.java:274)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:573)
	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


In this part of the output:

r6- 300: 226 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 74 Reference Java failures
r7- 300: 212 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 88 Reference Java failures
r8- 300: 210 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 90 Reference Java failures
r5- 300: 216 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 84 Reference Java failures
r2- 300: 209 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 91 Reference Java failures
r4- 300: 212 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 88 Reference Java failures
r3- 300: 202 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 98 Reference Java failures
r1- 300: 196 passed, 0 crashes, 1 fails, 0 hangs, 0 incorrect tests, 103 Reference Java failures

there is a XXX Reference Java failures on every line, but this
line is what caught my eye:

r1- 300: 196 passed, 0 crashes, 1 fails, 0 hangs, 0 incorrect tests, 103 Reference Java failures


I downloaded the workdir.zip file and looked in this fails directory:
test-support/jtreg_closed_test_hotspot_jtreg_applications_javafuzzer_BigTest_java/applications/javafuzzer/BigTest/fails/r1-53

and I only found this interesting output file:

$ cat rt_out_C2_STRESS.diff
1,2c1,2
< i22 i23 i24 = 1,374,-23428
< d2 i25 i26 = 4645287093772222464,12,76
---
> i22 i23 i24 = -4,374,-23428
> d2 i25 i26 = 4645287093772222464,12,0

I can't correlate these observations to any of the unresolved
bugs that mention applications/javafuzzer/BigTest.java so
I've filed this new bug.

Of course, this may actually be a duplicate of some other
bug, but it should would be nice if the reason for the failure
was somehow surfaced in the .jtr file. Having to look in the
workdir.zip file slows down GK failure analysis quite a bit.
Comments
I can now confirm this is indeed a duplicate of JDK-8333393. I'm also attaching an updated test ReducedNew.java, because Reduced.java stopped reproducing the issue after some change in mainline. An updated failure analysis will follow shortly in JDK-8333393.
28-11-2024

I'm deferring this to JDK 25 for now. Feel free to still fix in JDK 24 if the fix is ready in time.
19-11-2024

ILW = same as JDK-8338035 and JDK-8333393 = P3
29-08-2024

It starts to fail after JDK-8280320 which just enables more loop optimization. So, the problem must be older. I've attached the original test (Test.java) and a reduced test (Reduced.java) which produce a wrong result/fail intermittently: $ java -XX:CompileCommand=compileonly,*Test*::* -XX:-TieredCompilation -Xbatch -XX:+StressGCM -XX:PerMethodTrapLimit=0 Test.java $ java -XX:CompileCommand=compileonly,*Reduced*::* -XX:-TieredCompilation -Xbatch -XX:+StressGCM -XX:PerMethodTrapLimit=0 Reduced.java Output Test.java when comparing to -Xint run: < i22 i23 i24 = -4,374,-23428 < d2 i25 i26 = 4645287093772222464,12,0 --- > i22 i23 i24 = 1,374,-23428 > d2 i25 i26 = 4645287093772222464,12,76 Output Reduced.java: Exception in thread "main" java.lang.RuntimeException: Expected 9 but found 7 at Test.main(Test.java:31) It could be related to JDK-8338035 or JDK-8333393 which are still open Java Fuzzer bugs with wrong execution.
29-08-2024