我有一个Java服务器进程,现在使用以下崩溃报告间歇性地崩溃:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f8c169f6df8, pid=33597, tid=140237357057792
#
# JRE version: Java(TM) SE Runtime Environment (8.0_40-b25) (build 1.8.0_40-b25)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.40-b25 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V [libjvm.so+0x404df8] PhaseChaitin::gather_lrg_masks(bool)+0x208
#
# Failed to write core dump. 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:
# / blah2/hs_err_pid33597.log
#
# Compiler replay data is saved as:
# /blah2/replay_pid33597.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
在我想到影响任何机器配置更改(例如更改传入的VM标志或添加任何类型的其他日志记录)之前,我想对可用的任何诊断信息执行尽可能多的分析。
replay_pid文件是否包含可以帮助我(作为应用程序开发人员)诊断此问题的信息,还是用于向Oracle报告VM崩溃的信息?是否有可用于分析它的工具(例如类似于线程转储分析器)?
任何帮助/提示都表示赞赏。
由于 AD
答案 0 :(得分:0)
是的,重播文件可以帮助您以受控方式重现问题。
沃尔克·西蒙尼斯(Volker Simonis)的精彩演讲“分析热点崩溃”涵盖了这一点-这是该演讲中相关示例的直接链接:https://www.youtube.com/watch?v=xC8fEeo7izI&feature=youtu.be&t=1888