Java hs_err_pid文件中编译事件的含义是什么?

Java hs_err_pid文件中编译事件的含义是什么?,java,jvm,jvm-hotspot,jvm-crash,hs-err,Java,Jvm,Jvm Hotspot,Jvm Crash,Hs Err,我的JVM崩溃了,生成的hs_err_pid文件中的堆栈跟踪指向某个方法。现在,我看到同样的方法也存在于名为“编译事件”的较低的子部分(流程部分下) 这一节是什么意思 JVM在编译事件一节中指出的特定位置崩溃,我能从中理解什么 下面是hs_err_pid文件中的相关打印。请参见两部分的计算路径0x00007f07d4434960 # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0

我的JVM崩溃了,生成的hs_err_pid文件中的堆栈跟踪指向某个方法。现在,我看到同样的方法也存在于名为“编译事件”的较低的子部分(流程部分下)

  • 这一节是什么意思
  • JVM在编译事件一节中指出的特定位置崩溃,我能从中理解什么
  • 下面是hs_err_pid文件中的相关打印。请参见两部分的计算路径0x00007f07d4434960

    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  SIGSEGV (0xb) at pc=0x00007f07d44359f6, pid=1, tid=0x00007f07acc30700
    #
    # JRE version: OpenJDK Runtime Environment (8.0_151-b12) (build 1.8.0_151-8u151-b12-1~deb9u1-b12)
    # Java VM: OpenJDK 64-Bit Server VM (25.151-b12 mixed mode linux-amd64 compressed oops)
    # Problematic frame:
    # J 17451 C2 com.mycompany.myproject.pf.service.PathComputationServiceBean.computePath(Lorg/jgrapht/GraphPath;)Lcom/mycompany/myproject/pf/model/ComputedPath; (972 bytes) @ 0x00007f07d44359f6 [0x00007f07d4434960+0x1096]
    #
    # Core dump written. Default location: /application/core or core.1
    #
    # If you would like to submit a bug report, please visit:
    #   http://bugreport.java.com/bugreport/crash.jsp
    #
    .
    .
    .
    Compilation events (10 events):
    Event: 77730.233 Thread 0x00007f07e018f000 17446       3       sun.net.www.http.KeepAliveCache$1::run (5 bytes)
    Event: 77730.234 Thread 0x00007f07e018f000 nmethod 17446 0x00007f07d3c53010 code [0x00007f07d3c53180, 0x00007f07d3c53328]
    Event: 77731.883 Thread 0x00007f07e018d800 17448   !   4       java.util.concurrent.ThreadPoolExecutor::getTask (179 bytes)
    Event: 77731.890 Thread 0x00007f07e018d800 nmethod 17448 0x00007f07d3c47a10 code [0x00007f07d3c47be0, 0x00007f07d3c48210]
    Event: 77901.463 Thread 0x00007f07e018f000 17449       3       sun.net.www.http.ClientVector::<init> (10 bytes)
    Event: 77901.464 Thread 0x00007f07e018f000 nmethod 17449 0x00007f07d1976e90 code [0x00007f07d1977020, 0x00007f07d19772e8]
    Event: 77963.888 Thread 0x00007f07e018f000 17450       3       sun.net.www.http.KeepAliveCache$1::<init> (15 bytes)
    Event: 77963.888 Thread 0x00007f07e018f000 nmethod 17450 0x00007f07d1fbde50 code [0x00007f07d1fbdfc0, 0x00007f07d1fbe1b0]
    Event: 78214.567 Thread 0x00007f07e018d800 17451       4       com.mycompany.myproject.pf.service.PathComputationServiceBean::computePath (972 bytes)
    Event: 78214.857 Thread 0x00007f07e018d800 nmethod 17451 0x00007f07d44340d0 code [0x00007f07d4434960, 0x00007f07d44400a8]
    
    #
    #Java运行时环境检测到一个致命错误:
    #
    #pc=0x00007f07d44359f6、pid=1、tid=0x00007f07acc30700时的SIGSEGV(0xb)
    #
    #JRE版本:OpenJDK运行时环境(8.0_151-b12)(构建1.8.0_151-8u151-b12-1~deb9u1-b12)
    #Java虚拟机:OpenJDK 64位服务器虚拟机(25.151-b12混合模式linux-amd64压缩oops)
    #有问题的框架:
    #J 17451 C2 com.mycompany.myproject.pf.service.PathComputationServiceBean.computePath(Lorg/jgrapht/GraphPath;)Lcom/mycompany/myproject/pf/model/ComputedPath;(972字节)@0x00007f07d44359f6[0x00007f07d4434960+0x1096]
    #
    #核心转储已写入。默认位置:/application/core或core.1
    #
    #如果您想提交错误报告,请访问:
    #   http://bugreport.java.com/bugreport/crash.jsp
    #
    .
    .
    .
    编译事件(10个事件):
    事件:77730.233线程0x00007f07e018f000 17446 3 sun.net.www.http.KeepAliveCache$1::run(5字节)
    事件:77730.234线程0x00007f07e018f000 N方法17446 0x00007f07d3c53010代码[0x00007f07d3c53180,0x00007f07d3c53328]
    事件:77731.883线程0x00007f07e018d800 17448!4 java.util.concurrent.ThreadPoolExecutor::getTask(179字节)
    事件:77731.890线程0x00007f07e018d800 N方法17448 0x00007f07d3c47a10代码[0x00007F07D3C47E0,0x00007f07d3c48210]
    事件:77901.463线程0x00007f07e018f000 17449 3 sun.net.www.http.ClientVector::(10字节)
    事件:77901.464线程0x00007f07e018f000 N方法17449 0x00007f07d1976e90代码[0x00007f07d1977020,0x00007f07d19772e8]
    事件:77963.888线程0x00007f07e018f000 17450 3 sun.net.www.http.KeepAliveCache$1::(15字节)
    事件:77963.888线程0x00007f07e018f000 N方法17450 0x00007f07d1fbde50代码[0x00007f07d1fbdfc0,0x00007f07d1fbe1b0]
    事件:78214.567线程0x00007f07e018d800 17451 4 com.mycompany.myproject.pf.service.PathComputationServiceBean::computePath(972字节)
    事件:78214.857线程0x00007f07e018d800 N方法17451 0x00007f07d44340d0代码[0x00007f07d4434960,0x00007f07d44400a8]
    
    编译事件显示最近从Java字节码编译到本机代码的方法。如果在同一方法中始终看到崩溃,这可能意味着当前使用的JVM版本不正确地编译了此方法


    如果发生任何本机崩溃,您需要做的第一件事就是将JVM升级到最新版本。如果这没有帮助,您可以尝试重写有问题的方法(简化其逻辑,将其分解为更小的方法等),这有助于避免崩溃。

    如果它在同一个方法中反复崩溃,并且没有可下载的JVM版本,您可以从编译中排除该方法

    请参阅“5.2.1解决热点编译器线程或编译代码中的崩溃问题”

    此类崩溃通常是由于本机代码中的问题造成的。如果这没有帮助[…]-或者您可以将该方法从JIT中排除。@8472禁用JIT时字节码是否会更改?