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

JVM crash in SWPointer during C2 compilation

    XMLWordPrintable

Details

    • b33

    Backports

      Description

        Always reproducible on aarch64 linux platform with jdk14 slowdebug build.

        Reduced fuzz testcase :

        public class Test {

            public static final int N = 400;
            public static byte bArr[] = new byte[N];
            public static int iArr[] = new int[N];
            public static long lArr[] = new long[N];

            public static void vMeth(byte bArg, int iArg, long lArg) {
                int i = N - 1;
                do {
                    iArr[i - 1] += iArg;
                    iArr[i] += iArg;
                    lArr[i - 1] = lArg;
                    bArr[i - 1] = bArg;
                } while (--i > 0);
            }

            public void mainTest() {
                byte b = 0;
                int i = 0;
                long l = 0;
                for (int j = 0; j < N; ++j) {
                    vMeth(b, i, l);
                }
            }

            public static void main(String[] args) {
                    Test _instance = new Test();
                    for (int i = 0; i < 10; i++) {
                        _instance.mainTest();
                    }
            }

        }

        Command line: java -XX:CompileCommand=compileonly,Test::vMeth -XX:-TieredCompilation -XX:-BackgroundCompilation -XX:-UseOnStackReplacement Test

        CompileCommand: compileonly Test.vMeth
        #
        # A fatal error has been detected by the Java Runtime Environment:
        #
        # SIGSEGV (0xb) at pc=0x0000ffffa90bb9ec, pid=11975, tid=11986
        #
        # JRE version: OpenJDK Runtime Environment (14.0) (slowdebug build 14-internal+0-adhoc.yangfei.openjdk-jdk)
        # Java VM: OpenJDK 64-Bit Server VM (slowdebug 14-internal+0-adhoc.yangfei.openjdk-jdk, mixed mode, sharing, compressed oops, g1 gc, linux-aarch64)
        # Problematic frame:
        # V [libjvm.so+0x3149ec] Node::in(unsigned int) const+0x14
        #
        # 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:
        # /home/yangfei/114/hs_err_pid11975.log
        #
        # Compiler replay data is saved as:
        # /home/yangfei/114/replay_pid11975.log
        #
        # If you would like to submit a bug report, please visit:
        # https://bugreport.java.com/bugreport/crash.jsp
        #
        Current thread is 11986
        Dumping core ...
        Aborted

        Call trace:

          24 --------------- T H R E A D ---------------
          25
          26 Current thread (0x000000003c24d000): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=11986, stack(0x0000ffff4e8dc000,0x0000ffff4eadd000)]
          27
          28
          29 Current CompileTask:
          30 C2: 573 1 b Test::vMeth (54 bytes)
          31
          32 Stack: [0x0000ffff4e8dc000,0x0000ffff4eadd000], sp=0x0000ffff4ead66d0, free space=2025k
          33 Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
          34 V [libjvm.so+0x3149ec] Node::in(unsigned int) const+0x14
          35 V [libjvm.so+0x1049cb4] SWPointer::SWPointer(MemNode*, SuperWord*, Node_Stack*, bool)+0xb0
          36 V [libjvm.so+0x1048ea0] SuperWord::align_initial_loop_index(MemNode*)+0x228
          37 V [libjvm.so+0x1043f3c] SuperWord::output()+0xf4
          38 V [libjvm.so+0x103c514] SuperWord::SLP_extract()+0x4f4
          39 V [libjvm.so+0x103b2c8] SuperWord::transform_loop(IdealLoopTree*, bool)+0x4f8
          40 V [libjvm.so+0xcb8a7c] PhaseIdealLoop::build_and_optimize(LoopOptsMode)+0x1268
          41 V [libjvm.so+0x6a23d4] PhaseIdealLoop::PhaseIdealLoop(PhaseIterGVN&, LoopOptsMode)+0x94
          42 V [libjvm.so+0x6a2494] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x2c
          43 V [libjvm.so+0x695840] Compile::optimize_loops(PhaseIterGVN&, LoopOptsMode)+0xb8
          44 V [libjvm.so+0x69656c] Compile::Optimize()+0xb74
          45 V [libjvm.so+0x68fab4] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0xd4c
          46 V [libjvm.so+0x58deb8] C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x134
          47 V [libjvm.so+0x6abf10] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x668
          48 V [libjvm.so+0x6aacdc] CompileBroker::compiler_thread_loop()+0x364
          49 V [libjvm.so+0x10abd8c] compiler_thread_entry(JavaThread*, Thread*)+0x80
          50 V [libjvm.so+0x10a7168] JavaThread::thread_main_inner()+0x170
          51 V [libjvm.so+0x10a6fec] JavaThread::run()+0x130
          52 V [libjvm.so+0x10a2ea8] Thread::call_run()+0x1a8
          53 V [libjvm.so+0xe158b4] thread_native_entry(Thread*)+0x1dc
          54 C [libpthread.so.0+0x6dc4] start_thread+0xa4

        Attachments

          Issue Links

            Activity

              People

                fyang Fei Yang
                fyang Fei Yang
                Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: