gpt4 book ai didi

java - 如何知道 JVM 因 Segfault 崩溃的原因?

转载 作者:行者123 更新时间:2023-12-01 18:46:19 26 4
gpt4 key购买 nike

我们发现 JVM 有时会因段错误而崩溃。我们在日志中看到的唯一错误如下。

任何人都可以通过查看下面的错误跟踪来提出建议。

<小时/>
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fef7f1d3eb0, pid=42623, tid=0x00007feea62c8700
#
# JRE version: OpenJDK Runtime Environment (8.0_222-b10) (build 1.8.0_222-b10)
# Java VM: OpenJDK 64-Bit Server VM (25.222-b10 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# J 62683 C2 org.apache.ignite.internal.marshaller.optimized.OptimizedObjectOutputStream.writeObject0(Ljava/lang/Object;)V (331 bytes) @ 0x00007fef7f1d3eb0 [0x00007fef7f1d3e00+0xb0]
#
# 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:
# /tmp/hsperfdata_pvappuser/hs_err_pid42623.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
<小时/>

在尝试了解此崩溃的原因时,Oracle JVM 文档 https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/crashes001.html ,这看起来是 5.1.2 编译代码崩溃的情况,因为有问题的框架是 java 框架(有一个“J”)

虽然无法进一步了解它,但我们也不确定它何时到来,唯一可能的模式是当 JVM 运行 5-6 天时,通常是在周五。我们使用在 RHEL 6.10 上运行的 RedHat 提供的 openjdk-8(“1.8.0_232”)发行版。

期待找到追踪此错误的任何线索。

最佳答案

当前堆栈帧将 writeObject0 作为最后调用的方法。有一个命名约定,native 方法的名称以 0 结尾。因此,请检查该方法是否确实是 native 的。

如果是的话,它可能是用 C 语言编写的,这是一种古老的不安全语言,其程序往往会以不受控制的方式崩溃。这通常会导致 SIGSEGV。

在本例中,该方法是用 Java 编写的。

正如错误消息中告诉您的那样,请阅读 hs_err_pid42623.log 以获取更多详细信息。在该文件中,您将找到崩溃代码周围的寄存器和一些机器指令。

关于java - 如何知道 JVM 因 Segfault 崩溃的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59835460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com