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

JVM crashes when ran with -XX:+PrintInlining

    Details

    • Subcomponent:
    • Resolved In Build:
      b01
    • OS:
      linux, windows_8
    • Verification:
      Verified

      Backports

        Description

        FULL PRODUCT VERSION :
        C:\Users\sixi> " c:\Program Files\Java\jdk1.7.0_40\bin\java.exe " -version
        java version " 1.7.0_40-ea "
        Java(TM) SE Runtime Environment (build 1.7.0_40-ea-b36)
        Java HotSpot(TM) 64-Bit Server VM (build 24.0-b55, mixed mode)

        FULL OS VERSION :
        C:\Users\sixi>ver

        Microsoft Windows [Version 6.2.9200]

        EXTRA RELEVANT SYSTEM CONFIGURATION :
        Windows 8 is running inside an OS that is running on a physycal machine.

        i got the same error on a vm running linux also, but NOT with the stripped java file that i am providing with this report (running linux 64bit version of the same jdk - Linux matilda 3.2.0-51-generic #77-Ubuntu SMP Wed Jul 24 20:18:19 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux)

        A DESCRIPTION OF THE PROBLEM :
        application crashes shortly after startup.
        Apparently C2 compiler crashes

        THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: No

        THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: Yes

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        start provider app with the parameters
        java -server -Xms128M -Xmx128M -XX:+PrintCommandLineFlags -XX:+AggressiveOpts -XX:+AggressiveHeap -XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining -cp . ro.derbederos.hlfe.parser.Benchmark

        EXPECTED VERSUS ACTUAL BEHAVIOR :
        application should end up normally after 5-10 secs but it crashes with
         Error: ShouldNotReachHere().

        Apparently on linux box the C2 compiler is not triggered on the example. I think On stack replacement doesn;t take place and execution takes ~30 secs instead of 5 like on windows box.

        on windows box PrintCommandLineFlags option reveals a parameter which does not appear as set on the linux box:
        -XX:-UseLargePagesIndividualAllocation

        also as you see below on windows box there is a line saying:
        # Internal Error (opto/compile.hpp:420)
        on linux box, when i get the error, it states compile:hpp:420 without the " opto/ " string in front of it.

        #
        # A fatal error has been detected by the Java Runtime Environment:
        #
        # Internal Error (opto/compile.hpp:420), pid=4908, tid=5472
        # Error: ShouldNotReachHere()
        #
        # JRE version: Java(TM) SE Runtime Environment (7.0_40-b36) (build 1.7.0_40-ea-b36)
        # Java VM: Java HotSpot(TM) 64-Bit Server VM (24.0-b55 mixed mode windows-amd64 compressed oops)
        # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
        #
        # An error report file with more information is saved as:
        # C:\Users\sixi\javaProjects\hlfe.hg\hs_err_pid4908.log
        #
        # If you would like to submit a bug report, please visit:
        # http://bugreport.sun.com/bugreport/crash.jsp
        #
        ERROR MESSAGES/STACK TRACES THAT OCCUR :
        #
        # A fatal error has been detected by the Java Runtime Environment:
        #
        # Internal Error (opto/compile.hpp:420), pid=4908, tid=5472
        # Error: ShouldNotReachHere()
        #
        # JRE version: Java(TM) SE Runtime Environment (7.0_40-b36) (build 1.7.0_40-ea-b36)
        # Java VM: Java HotSpot(TM) 64-Bit Server VM (24.0-b55 mixed mode windows-amd64 compressed oops)
        # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
        #
        # If you would like to submit a bug report, please visit:
        # http://bugreport.sun.com/bugreport/crash.jsp
        #

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

        Current thread (0x000000000306b800): JavaThread " C2 CompilerThread1 " daemon [_thread_in_native, id=5472, stack(0x0000000009950000,0x0000000009a50000)]

        Stack: [0x0000000009950000,0x0000000009a50000]

        Current CompileTask:
        C2: 302 5 ro.derbederos.hlfe.parser.Benchmark::bench (100 bytes)


        --------------- P R O C E S S ---------------

        Java Threads: ( => current thread )
          0x000000000306d000 JavaThread " Service Thread " daemon [_thread_blocked, id=4560, stack(0x0000000009a50000,0x0000000009b50000)]
        =>0x000000000306b800 JavaThread " C2 CompilerThread1 " daemon [_thread_in_native, id=5472, stack(0x0000000009950000,0x0000000009a50000)]
          0x0000000003061000 JavaThread " C2 CompilerThread0 " daemon [_thread_blocked, id=4756, stack(0x0000000009850000,0x0000000009950000)]
          0x000000000305e000 JavaThread " Attach Listener " daemon [_thread_blocked, id=4460, stack(0x0000000009750000,0x0000000009850000)]
          0x0000000003059000 JavaThread " Signal Dispatcher " daemon [_thread_blocked, id=2276, stack(0x0000000009650000,0x0000000009750000)]
          0x000000000728f800 JavaThread " Finalizer " daemon [_thread_blocked, id=4012, stack(0x0000000009150000,0x0000000009250000)]
          0x0000000007289000 JavaThread " Reference Handler " daemon [_thread_blocked, id=6108, stack(0x0000000009050000,0x0000000009150000)]
          0x0000000002f70800 JavaThread " main " [_thread_in_Java, id=2904, stack(0x0000000002d60000,0x0000000002e60000)]

        Other Threads:
          0x0000000007283800 VMThread [stack: 0x0000000008f50000,0x0000000009050000] [id=44]
          0x000000000306e800 WatcherThread [stack: 0x0000000009b50000,0x0000000009c50000] [id=5448]

        VM state:not at safepoint (normal execution)

        VM Mutex/Monitor currently owned by a thread: None

        Heap
         PSYoungGen total 43008K, used 512K [0x00000000fd000000, 0x0000000100000000, 0x0000000100000000)
          eden space 36864K, 1% used [0x00000000fd000000,0x00000000fd0801a0,0x00000000ff400000)
          from space 6144K, 0% used [0x00000000ffa00000,0x00000000ffa00000,0x0000000100000000)
          to space 6144K, 0% used [0x00000000ff400000,0x00000000ff400000,0x00000000ffa00000)
         ParOldGen total 81920K, used 0K [0x00000000f8000000, 0x00000000fd000000, 0x00000000fd000000)
          object space 81920K, 0% used [0x00000000f8000000,0x00000000f8000000,0x00000000fd000000)
         PSPermGen total 21504K, used 2426K [0x00000000f2e00000, 0x00000000f4300000, 0x00000000f8000000)
          object space 21504K, 11% used [0x00000000f2e00000,0x00000000f305e980,0x00000000f4300000)

        Card table byte_map: [0x0000000006130000,0x00000000061a0000] byte_map_base: 0x0000000005999000

        Polling page: 0x0000000000eb0000

        Code Cache [0x0000000003070000, 0x00000000032e0000, 0x0000000006070000)
         total_blobs=185 nmethods=4 adapters=134 free_code_cache=48766Kb largest_free_block=49921984

        Compilation events (7 events):
        Event: 0.065 Thread 0x0000000003061000 2 ro.derbederos.hlfe.parser.Benchmark$1::processData (31 bytes)
        Event: 0.070 Thread 0x0000000003061000 nmethod 2 0x00000000030d0d50 code [0x00000000030d0e80, 0x00000000030d0f18]
        Event: 0.076 Thread 0x000000000306b800 3 ro.derbederos.hlfe.parser.Benchmark$1::processData (9 bytes)
        Event: 0.077 Thread 0x000000000306b800 nmethod 3 0x00000000030d0a90 code [0x00000000030d0bc0, 0x00000000030d0c78]
        Event: 0.080 Thread 0x0000000003061000 4 % ro.derbederos.hlfe.parser.Benchmark::bench @ 60 (100 bytes)
        Event: 0.082 Thread 0x0000000003061000 nmethod 4% 0x00000000030d1f90 code [0x00000000030d2100, 0x00000000030d2318]
        Event: 0.301 Thread 0x000000000306b800 5 ro.derbederos.hlfe.parser.Benchmark::bench (100 bytes)

        GC Heap History (0 events):
        No events

        Deoptimization events (0 events):
        No events

        Internal exceptions (4 events):
        Event: 0.028 Thread 0x0000000002f70800 Threw 0x00000000fd010838 at C:\jdk7u2_64p\jdk7u40\hotspot\src\share\vm\prims\jni.cpp:3991
        Event: 0.058 Thread 0x0000000002f70800 Threw 0x00000000fd052600 at C:\jdk7u2_64p\jdk7u40\hotspot\src\share\vm\prims\jvm.cpp:1244
        Event: 0.062 Thread 0x0000000002f70800 Threw 0x00000000fd058ae8 at C:\jdk7u2_64p\jdk7u40\hotspot\src\share\vm\prims\jvm.cpp:1244
        Event: 0.063 Thread 0x0000000002f70800 Threw 0x00000000fd05a690 at C:\jdk7u2_64p\jdk7u40\hotspot\src\share\vm\prims\jvm.cpp:1244

        Events (10 events):
        Event: 0.062 loading class 0x0000000003016830
        Event: 0.062 loading class 0x0000000003016830 done
        Event: 0.062 loading class 0x0000000002fe5cf0
        Event: 0.062 loading class 0x0000000002fe5cf0 done
        Event: 0.062 loading class 0x0000000007284a10
        Event: 0.062 loading class 0x0000000007284a10 done
        Event: 0.063 loading class 0x0000000002fcd170
        Event: 0.063 loading class 0x0000000002fcd170 done
        Event: 0.063 loading class 0x000000000306da00
        Event: 0.063 loading class 0x000000000306da00 done


        Dynamic libraries:
        0x000007f660790000 - 0x000007f6607c3000 C:\Program Files\Java\jdk1.7.0_40\bin\javaw.exe
        0x000007ff6c780000 - 0x000007ff6c940000 C:\WINDOWS\SYSTEM32
        tdll.dll
        0x000007ff6b950000 - 0x000007ff6ba86000 C:\WINDOWS\system32\KERNEL32.DLL
        0x000007ff69a60000 - 0x000007ff69b53000 C:\WINDOWS\system32\KERNELBASE.dll
        0x000007ff6c4d0000 - 0x000007ff6c5ae000 C:\WINDOWS\system32\ADVAPI32.dll
        0x000007ff6c120000 - 0x000007ff6c26c000 C:\WINDOWS\system32\USER32.dll
        0x000007ff67190000 - 0x000007ff673fa000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9200.16579_none_418ab7ef718b27ef\COMCTL32.dll
        0x000007ff6bd00000 - 0x000007ff6bda5000 C:\WINDOWS\system32\msvcrt.dll
        0x000007ff6b820000 - 0x000007ff6b868000 C:\WINDOWS\SYSTEM32\sechost.dll
        0x000007ff6bbb0000 - 0x000007ff6bcf0000 C:\WINDOWS\system32\RPCRT4.dll
        0x000007ff6c630000 - 0x000007ff6c771000 C:\WINDOWS\system32\GDI32.dll
        0x000007ff6b560000 - 0x000007ff6b599000 C:\WINDOWS\system32\IMM32.DLL
        0x000007ff6bdb0000 - 0x000007ff6bec5000 C:\WINDOWS\system32\MSCTF.dll
        0x000007ff695c0000 - 0x000007ff69606000 C:\Windows\system32
        vinitx.dll
        0x000000000f000000 - 0x000000000f006000 C:\Program Files\NVIDIA Corporation\CoProcManager\detoured.dll
        0x000007ff67130000 - 0x000007ff67185000 C:\Program Files\NVIDIA Corporation\CoProcManager
        vd3d9wrapx.dll
        0x000007ff6b5a0000 - 0x000007ff6b770000 C:\WINDOWS\system32\SETUPAPI.dll
        0x000007ff698d0000 - 0x000007ff6991f000 C:\WINDOWS\system32\CFGMGR32.dll
        0x000007ff69920000 - 0x000007ff69942000 C:\WINDOWS\system32\DEVOBJ.dll
        0x000007ff670c0000 - 0x000007ff670fd000 C:\Program Files\NVIDIA Corporation\CoProcManager
        vdxgiwrapx.dll
        0x000000005a490000 - 0x000000005a561000 C:\Program Files\Java\jdk1.7.0_40\jre\bin\msvcr100.dll
        0x0000000059680000 - 0x0000000059e49000 C:\Program Files\Java\jdk1.7.0_40\jre\bin\server\jvm.dll
        0x000007ff61cb0000 - 0x000007ff61cb9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
        0x000007ff66ae0000 - 0x000007ff66b00000 C:\WINDOWS\SYSTEM32\WINMM.dll
        0x000007ff6bcf0000 - 0x000007ff6bcf7000 C:\WINDOWS\system32\PSAPI.DLL
        0x000007ff6c5d0000 - 0x000007ff6c628000 C:\WINDOWS\system32\WS2_32.dll
        0x000007ff669e0000 - 0x000007ff66a12000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
        0x000007ff6c4c0000 - 0x000007ff6c4c9000 C:\WINDOWS\system32\NSI.dll
        0x000000005a480000 - 0x000000005a48f000 C:\Program Files\Java\jdk1.7.0_40\jre\bin\verify.dll
        0x000000005a450000 - 0x000000005a478000 C:\Program Files\Java\jdk1.7.0_40\jre\bin\java.dll
        0x000000005a430000 - 0x000000005a445000 C:\Program Files\Java\jdk1.7.0_40\jre\bin\zip.dll

        VM Arguments:
        jvm_args: -Xms128M -Xmx128M -XX:+PrintCommandLineFlags -XX:+AggressiveOpts -XX:+AggressiveHeap -XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining -Dfile.encoding=UTF-8 -Xbootclasspath:C:\Program Files\Java\jdk1.7.0_40\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_40\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_40\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_40\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_40\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_40\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_40\lib\tools.jar
        java_command: ro.derbederos.hlfe.parser.Benchmark
        Launcher Type: SUN_STANDARD

        Environment Variables:
        JAVA_HOME=c:\program files\java\jdk1.7.0_25
        PATH=C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\12.0\DLLShared\;C:\Program Files (x86)\Roxio\OEM\AudioCore\;C:\Program Files\Microsoft Windows Performance Toolkit\;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseHg\;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\appz\apache-maven-3.1.0\bin;c:\jruby-1.7.4\bin;.;;.;
        USERNAME=sixi
        OS=Windows_NT
        PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 42 Stepping 7, GenuineIntel



        --------------- S Y S T E M ---------------

        OS: Windows 8 , 64 bit Build 9200

        CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, aes, ht, tsc, tscinvbit

        Memory: 4k page, physical 8280232k(5493228k free), swap 16668840k(13507420k free)

        vm_info: Java HotSpot(TM) 64-Bit Server VM (24.0-b55) for windows-amd64 JRE (1.7.0_40-ea-b36), built on Jul 31 2013 19:30:59 by " java_re " with unknown MS VC++:1600

        time: Wed Aug 07 00:16:40 2013
        elapsed time: 0 seconds


        REPRODUCIBILITY :
        This bug can be reproduced always.

        ---------- BEGIN SOURCE ----------
        package ro.derbederos.hlfe.parser;

        public class Benchmark {

            private static double bench(IMyMessageParser parser) {
                String s1 = " Name=Alice\u0001 " ;
                String s2 = " Name=Bob\u0001 " ;
                String s3 = " Name=Carl\u0001 " ;
                String s4 = " Name=Diane\u0001 " ;
                byte[] s5bytes = (s1 + s2 + s3 + s4).getBytes();

                int numberofmessages = 1000000;
                long t11 = System.nanoTime();
                for (int i = 0; i < numberofmessages / 4; i++) {
                    parser.processData(s5bytes);
                }
                long t22 = System.nanoTime();
                return (t22 - t11) / numberofmessages / 1000d;
            }

            public static interface IMyMessageParser {
                public void processData(byte[] buffer);

                public void processData(byte[] buffer, int off, int len);
            }

            public static void main(String[] args) {
                IMyMessageParser parserNew = new IMyMessageParser() {

                    @Override
                    public void processData(byte[] buffer) {
                        processData(buffer, 0, buffer.length);
                    }

                    @Override
                    public void processData(byte[] buffer, int off, int len) {
                        long x = System.nanoTime();
                        long i = 0;
                        while (System.nanoTime() - x < 700) {
                            i++;
                        }
                        // System.out.println(i);
                    }

                };

                int rounds = 20;
                double aNew = 0;
                double timesNew[] = new double[rounds];
                for (int i = -2; i < rounds; i++) {
                    double timePerMessage = bench(parserNew);
                    if (i < 0)
                        continue;
                    timesNew[i] = timePerMessage;
                }

                for (int i = 0; i < rounds; i++) {
                    System.out.println( " Round: " + i);
                    System.out.println( " New parser " );
                    double timePerMessage = timesNew[i];
                    aNew += timePerMessage;
                    System.out.println( " Parsing took(wall clock \u03BCs/msg): " + timePerMessage);
                    System.out.println( " New Parser Avg: " + aNew / (i + 1));
                }
            }
        }

        ---------- END SOURCE ----------

        CUSTOMER SUBMITTED WORKAROUND :
        workaround is to remove -XX:+PrintInlining

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  kvn Vladimir Kozlov
                  Reporter:
                  webbuggrp Webbug Group
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  7 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: