【问题标题】:Jvm crash :fatal error has been detected by the Java Runtime EnvironmentJvm 崩溃:Java 运行时环境已检测到致命错误
【发布时间】:2017-10-23 01:13:21
【问题描述】:

我在实时服务器上遇到了一个 tomcat 崩溃,它生成了 hs_err_pid 文件。其中有一个有问题的框架 -> _wordcopy_fwd_dest_aligned+0x54。我搜索了所有类似的 jvm 崩溃案例,但找不到这个有问题的框架的含义。有什么建议吗?

 #
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0x00007f61087e3cb4, pid=18886, tid=140051814115072
#
# JRE version: 6.0_37-b06
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.12-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libc.so.6+0x89cb4]  _wordcopy_fwd_dest_aligned+0x54
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

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

Current thread (0x00007f6044017000):  JavaThread "ajp-bio-10009-exec-97" daemon [_thread_in_vm, id=28541, stack(0x00007f605a916000,0x00007f605aa17000)]

siginfo:si_signo=SIGBUS: si_errno=0, si_code=2 (BUS_ADRERR), si_addr=0x00007f6059d3f9f8

Registers:
RAX=0x0000000000000038, RBX=0x00007f6059d3f9f9, RCX=0x0000000000000001, RDX=0x000000000000004c
RSP=0x00007f605aa14298, RBP=0x00000006e903e928, RSI=0x00007f6059d3f9f8, RDI=0x00000006e903e928
R8 =0x0000000000000008, R9 =0x00007f61085ecb38, R10=0x00007f60fd010ec1, R11=0x00007f61085d4090
R12=0x00000006e903e928, R13=0x0000000000000268, R14=0x00007f61085f0bc0, R15=0x00007f605aa14430
RIP=0x00007f61087e3cb4, EFLAGS=0x0000000000010202, CSGSFS=0x000000000000e033, ERR=0x0000000000000004
TRAPNO=0x000000000000000e

Top of Stack: (sp=0x00007f605aa14298)
0x00007f605aa14298:   00007f6059d3f9f9 00000006e903e928
0x00007f605aa142a8:   00007f61087dd8ae 0000000000000004
0x00007f605aa142b8:   00007f605aa15b60 00007f605aa142e0
0x00007f605aa142c8:   00007f6044017000 0000000000000268
0x00007f605aa142d8:   00007f6107f313eb 00007f605aa14350
0x00007f605aa142e8:   00007f6108392c00 0000000000000010
0x00007f605aa142f8:   00007f6059d3f9f9 00007f6044017000
0x00007f605aa14308:   00007f60a11b4338 00007f6044017000
0x00007f605aa14318:   00000000ffffffff 00007f6108430701
0x00007f605aa14328:   00000007e00cf808 0000000000000000
0x00007f605aa14338:   00000007e00cf808 00007f605aa14450
0x00007f605aa14348:   00007f6044017000 00007f605aa143f0
0x00007f605aa14358:   00007f60fd010eee 0000000000000268
0x00007f605aa14368:   00007f6107ef6a6c 0000000000000000
0x00007f605aa14378:   00007f60a11b4338 0000000000000004
0x00007f605aa14388:   00000000ffffffff 00007f6108430701
0x00007f605aa14398:   0000000000001389 00007f605aa14460
0x00007f605aa143a8:   00007f6107ef63ad 00007f605aa143b0
0x00007f605aa143b8:   0000000000000000 00007f605aa14450
0x00007f605aa143c8:   00000007e00d2508 0000000000000000
0x00007f605aa143d8:   00000007e00cf808 0000000000000000
0x00007f605aa143e8:   00007f605aa14410 00007f605aa14498
0x00007f605aa143f8:   00007f60fd005a82 0000000000000000
0x00007f605aa14408:   00007f60fd00df58 0000000000000268
0x00007f605aa14418:   0000000400000002 0000000000000010
0x00007f605aa14428:   00007f60a11b4340 00000006e903e918
0x00007f605aa14438:   00007f6059d3f9f9 0000000000001389
0x00007f605aa14448:   0000000000000000 000000071005d290
0x00007f605aa14458:   00007f605aa14458 00000007e015e822
0x00007f605aa14468:   00007f605aa14508 00000007e015f408
0x00007f605aa14478:   0000000000000000 00000007e015e850
0x00007f605aa14488:   00007f605aa14410 00007f605aa144c8 

Instructions: (pc=0x00007f61087e3cb4)
0x00007f61087e3c94:   1b 48 85 d2 74 42 4c 8b 1e 48 8b 6e 08 48 83 ef
0x00007f61087e3ca4:   08 48 83 c6 08 e9 98 00 00 00 66 90 48 83 ea 01
0x00007f61087e3cb4:   4c 8b 16 4c 8b 5e 08 0f 85 bf 00 00 00 0f 1f 80
0x00007f61087e3cc4:   00 00 00 00 89 c1 49 d3 e3 44 89 c1 4c 89 d8 49 

Register to memory mapping:

RAX=0x0000000000000038 is an unknown value
RBX=0x00007f6059d3f9f9 is an unknown value
RCX=0x0000000000000001 is an unknown value
RDX=0x000000000000004c is an unknown value
RSP=0x00007f605aa14298 is pointing into the stack for thread: 0x00007f6044017000
RBP=

【问题讨论】:

    标签: java linux tomcat fatal-error jvm-crash


    【解决方案1】:

    这里有几种可能性。但除非您使用任何本机库(例如tcnative),否则故障完全出在应用程序之外(包括此处作为“应用程序”的一部分的 Tomcat)。应用程序所做的任何事情都不会导致 JVM 崩溃。

    1. 您正在使用的本机库中存在错误
    2. JVM 中存在错误
    3. libc 中有一个错误
    4. 您遇到了硬件错误

    如果您实际上有任何原生组件,我认为 #1 最有可能。

    如果您没有任何本机组件,我认为 #4 最有可能。每次我看到SIGBUS 时,它都被证明是底层硬件的问题。如果可能,请停止该机器的服务并在该机器上运行memtest86+(或您的体系结构的等效项)。它将锻炼内存、CPU、系统总线,看看是否不断地工作它们会暴露问题。

    如果您的系统通过了 memtest86+ 的 2 次测试,我会说您更有可能在 JVM(不太可能)或 libc(更不可能)中发现错误。在任何一种情况下,请将所有内容升级到最新版本并重试。

    【讨论】:

      【解决方案2】:
      1. 您观察到的崩溃不是 java 问题而是 redhat 问题"https://bugzilla.redhat.com/show_bug.cgi?id=546158"
      2. 什么是有问题的框架: 它是导致崩溃的顶部框架,在您的情况下,它是本机框架 (C) 导致 libC.so 文件。 更多详情请查看here

      【讨论】:

        猜你喜欢
        • 2019-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-11
        相关资源
        最近更新 更多