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

JVM crash with GenerateOopMap::error_work(char const*, __va_list_tag*)

XMLWordPrintable

    • b10
    • generic
    • generic
    • Verified

        ADDITIONAL SYSTEM INFORMATION :
        OS:
        LSB Version: security-9.20170808ubuntu1-noarch
        Distributor ID: Ubuntu
        Description: Ubuntu 18.04.5 LTS
        Release: 18.04
        Codename: bionic

        JDK:
        openjdk version "19-ea" 2022-09-20
        OpenJDK Runtime Environment (build 19-ea+31-2203)
        OpenJDK 64-Bit Server VM (build 19-ea+31-2203, mixed mode, sharing)

        openjdk version "20-ea" 2023-03-21
        OpenJDK Runtime Environment (build 20-ea+6-304)
        OpenJDK 64-Bit Server VM (build 20-ea+6-304, mixed mode, sharing)

        A DESCRIPTION OF THE PROBLEM :
        Hotspot JVM(JDK 19,20) fails to run this test case while Openj9 can pass. HotSpot JVM fails with the following message:

        #
        # A fatal error has been detected by the Java Runtime Environment:
        #
        # Internal Error (generateOopMap.cpp:2159), pid=83663, tid=30199
        # fatal error: Illegal class file encountered. Try running with -Xverify:all in method getAlphanumericCode
        #
        # JRE version: OpenJDK Runtime Environment (20.0+6) (build 20-ea+6-304)
        # Java VM: OpenJDK 64-Bit Server VM (20-ea+6-304, interpreted mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
        # Problematic frame:
        # V [libjvm.so+0x7fa1b5] GenerateOopMap::error_work(char const*, __va_list_tag*)+0x105
        #
        # No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
        #
        # An error report file with more information is saved as:
        # /data/jit/fuzzJIT/hs_err_pid83663.log
        #
        # If you would like to submit a bug report, please visit:
        # https://bugreport.java.com/bugreport/crash.jsp

        Note that:
        The buggy classfile is bug_file/com/google/zxing/qrcode/encoder/Encoder.class
        This buggy classfile is generated by fuzzer

        ERROR MESSAGES/STACK TRACES THAT OCCUR :
        #
        # A fatal error has been detected by the Java Runtime Environment:
        #
        # Internal Error (generateOopMap.cpp:2159), pid=83663, tid=30199
        # fatal error: Illegal class file encountered. Try running with -Xverify:all in method getAlphanumericCode
        #
        # JRE version: OpenJDK Runtime Environment (20.0+6) (build 20-ea+6-304)
        # Java VM: OpenJDK 64-Bit Server VM (20-ea+6-304, interpreted mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
        # Problematic frame:
        # V [libjvm.so+0x7fa1b5] GenerateOopMap::error_work(char const*, __va_list_tag*)+0x105
        #
        # No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
        #
        # An error report file with more information is saved as:
        # /data/jit/fuzzJIT/hs_err_pid83663.log
        #
        # If you would like to submit a bug report, please visit:
        # https://bugreport.java.com/bugreport/crash.jsp
        #

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        1.Download bug_generateOopMap.zip from the following link:
        https://drive.google.com/file/d/11uPuOHBNYAJU9g1TOumvt4USfJ6X9wmY/view?usp=sharing
        2. Extract bug_generateOopMap.zip and enter bug_generateOopMap.
        3. run the following command:
        java -jar junit-platform-console-standalone-1.8.2.jar -cp ./util:./bug_file:./classes:./test-classes -m
         com.google.zxing.qrcode.encoder.EncoderTestCase#testChooseMode

        ACTUAL -
        If run the command:

        java -jar junit-platform-console-standalone-1.8.2.jar -cp ./util:./bug_file:./classes:./test-classes -m
         com.google.zxing.qrcode.encoder.EncoderTestCase#testChooseMode

        it crashes.
        If run this command:

        java -jar junit-platform-console-standalone-1.8.2.jar -cp ./classes:./test-classes -m com.google.zxing.qrcode.encoder.EncoderTestCase#testChooseMode

        It passes. That is, remove the buggy classfile from classpath.

        CUSTOMER SUBMITTED WORKAROUND :
        run the following command:

        java -jar junit-platform-console-standalone-1.8.2.jar -cp ./classes:./test-classes -m com.google.zxing.qrcode.encoder.EncoderTestCase#testChooseMode

        FREQUENCY : always


              hseigel Harold Seigel (Inactive)
              webbuggrp Webbug Group
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated:
                Resolved: