Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8316396

Endless loop in C2 compilation triggered by AddNode::IdealIL

    XMLWordPrintable

Details

    • b18
    • x86_64
    • linux
    • Verified

    Backports

      Description

        The following test failed in the JDK22 CI:

        applications/javafuzzer/MediumTest.java

        Here's a snippet from the log file:

        #section:driver
        ----------messages:(7/305)----------
        command: driver applications.javafuzzer.JavaFuzzerRunner -NT 50
        reason: User specified action: run driver/timeout=21600 applications.javafuzzer.JavaFuzzerRunner -NT 50
        started: Sun Sep 17 14:30:35 UTC 2023
        Mode: agentvm
        Agent id: 2
        finished: Sun Sep 17 15:51:05 UTC 2023
        elapsed time (seconds): 4829.941
        ----------configuration:(16/2449)----------

        <snip>

        ----------System.out:(36/2669)----------
        For random generator using seed: -606735860558289215
        To re-run test with same seed value please add "-Djdk.test.lib.random.seed=-606735860558289215" to command line.
        Using JRuby executable: /opt/mach5/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/bin/jruby
        Starting JavaFuzzer: '/bin/bash /opt/mach5/mesos/work_dir/jib-master/install/com/oracle/jpg/bigapps/javafuzzer/javafuzzer/2.0/javafuzzer-2.0.zip/mrt.sh -R /opt/mach5/mesos/work_dir/slaves/cd627e65-f015-4fb1-a1d2-b6c9b8127f98-S173928/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/e66fbedc-caa6-4705-9f20-ac0723bad48b/runs/8cf948c1-2ab1-4277-8158-230b5d2f3b44/testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_javafuzzer_MediumTest_java/scratch/0 -NT 50 -NP 12 -A -conf config.yml'
        [2023-09-17T14:30:42.145497862Z] Gathering output for process 238310
        [2023-09-17T15:51:05.554525337Z] Waiting for completion for process 238310
        [2023-09-17T15:51:05.554789169Z] Waiting for completion finished for process 238310
        Output and diagnostic info for process 238310 was saved into 'pid-238310-output.log'

        Summary of the JavaFuzzer run:
        ------------------------------
        Host: ubuntu-22-04-x64-759186
        Tests: 12 x 50
        Args: -conf config.yml

        Started at: Sun Sep 17 14:30:42 UTC 2023


        r12- 50: 33 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 17 Reference Java failures
        r7- 50: 32 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 18 Reference Java failures
        r4- 50: 31 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 19 Reference Java failures
        r5- 50: 35 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 15 Reference Java failures
        r10- 50: 31 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 19 Reference Java failures
        r2- 50: 27 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 23 Reference Java failures
        r1- 50: 36 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 14 Reference Java failures
        r3- 50: 35 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 15 Reference Java failures
        r9- 50: 30 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 20 Reference Java failures
        r11- 50: 27 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 23 Reference Java failures
        r8- 50: 31 passed, 0 crashes, 2 fails, 0 hangs, 0 incorrect tests, 18 Reference Java failures
        r6- 50: 33 passed, 0 crashes, 0 fails, 0 hangs, 0 incorrect tests, 17 Reference Java failures

        Finished at: Sun Sep 17 15:51:05 UTC 2023


        [2023-09-17T15:51:05.623446277Z] Waiting for completion for process 238310
        [2023-09-17T15:51:05.623697265Z] Waiting for completion finished for process 238310
        ----------System.err:(15/908)----------
        java.lang.RuntimeException: assertEquals: expected 1 to equal 2
        at jdk.test.lib.Asserts.fail(Asserts.java:594)
        at jdk.test.lib.Asserts.assertEquals(Asserts.java:205)
        at jdk.test.lib.Asserts.assertEquals(Asserts.java:189)
        at applications.javafuzzer.JavaFuzzerRunner.reportResults(JavaFuzzerRunner.java:244)
        at applications.javafuzzer.JavaFuzzerRunner.runWithConfigurations(JavaFuzzerRunner.java:265)
        at applications.javafuzzer.JavaFuzzerRunner.main(JavaFuzzerRunner.java:283)
        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:1570)

        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 to equal 2


        The summary above has this line:

        > r8- 50: 31 passed, 0 crashes, 2 fails, 0 hangs, 0 incorrect tests, 18 Reference Java failures

        so we have two failures, but no obvious info about what those
        failures are...

        It has been a long time since I've seen a javafuzzer failure without
        hs_err_pid files. I did download the test execution artifacts and I
        did not find any hs_err_pid files.

        Attachments

          1. FuzzerUtils.java
            13 kB
          2. Reduced.java
            0.4 kB
          3. Test.java
            6 kB

          Issue Links

            Activity

              People

                roland Roland Westrelin
                dcubed Daniel Daugherty
                Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: