标签: jvm-crash

在Solaris上没有创建hs_err_pid.log文件并从jvm转储核心

问题描述

经过一段时间运行我的Java服务器应用程序后,我在Solaris上遇到了Oracle Java虚拟机的奇怪行为.通常,当jvm hs_err_pid.log文件发生崩溃时(位置由-XX:ErrorFilejvm参数确定,如下所述:如何禁止创建hs_err_pid文件?

但在我的情况下,文件没有创建,唯一剩下的是core核心转储文件.

使用pstackpflags标准的Solaris工具,我能够从core文件中收集有关崩溃的更多信息(包含在下面).

试过的解决方案

  • 试图找到hs_err_pid.log整个文件系统中的所有文件,但找不到任何文件(甚至在应用程序工作目录之外).即:

    find / -name "hs_err_pid*"

  • 我试图找到与jvm相关的jvm错误,但我找不到类似于这种情况的有趣内容.

  • 问题看起来有点类似于:Java VM:1.6.0_17和1.6.0_18都可重现SIGSEGV,如何报告?但我仍然无法确认这一点,因为hs_err_pid.log文件丢失了,当然OS平台也不同了.
  • (编辑)正如在分析java核心转储问题的工具的答案之一中所建议的那样,我已经从core文件中提取了堆转储jmap并使用Eclipse MAT进行了分析.我发现了一个泄漏(添加到HashMap的元素,在核心转储1,4 M元素时永远不会被清除).然而,这并不能解释为什么hs_err_pid.log没有生成文件,也没有jvm崩溃.
  • (EDIT2) 正如Darryl Miles所建议的那样,-Xmx限制已被检查(测试包含的代码无限期地将对象添加到a LinkedList):
    • java -Xmx1444m Test结果java.lang.OutOfMemoryError: Java heap space,
    • java -Xmx2048m Test结果java.lang.OutOfMemoryError: Java heap space,
    • java -Xmx3600m Test 核心转储的结果.

这个问题

有没有人遇到类似jvm的问题,如何在这种情况下继续查找实际发生的事情(即在什么情况下核心从jvm转储而没有hs_err_pid.log创建文件)?

解决这个问题的任何提示或指针都会非常有用.

提取的标志 …

java jvm solaris segmentation-fault jvm-crash

6
推荐指数
1
解决办法
2万
查看次数

当JVM崩溃时,Sun JDK能否生成核心/堆转储文件?

无论如何在JVM崩溃时生成核心/堆转储文件?由于这些文件通常非常有助于找出代码中的错误.任何帮助表示赞赏.

java coredump jvm-crash

6
推荐指数
1
解决办法
2万
查看次数

EXCEPTION_ACCESS_VIOLATION (0xc0000005)

我们在我们自己的测试工具(基于 Java 的)中运行我们的测试集......随机测试失败......我们得到以下 JVM 失败错误......请帮助......

A fatal error has been detected by the Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006a0d5422, pid=7560, tid=2052

JRE version: 7.0_06-b24
Java VM: Java HotSpot(TM) 64-Bit Server VM (23.2-b09 mixed mode windows-amd64 compressed oops)
Problematic frame:
V  [jvm.dll+0x25422]
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 …
Run Code Online (Sandbox Code Playgroud)

jvm-crash

6
推荐指数
1
解决办法
1万
查看次数

java 8 中是否有任何非堆内存限制?

我遇到了一个关键问题。在 Java RCP 应用程序(桌面)上工作,该应用程序经常在我的机器上(而不是在我同事的机器上)崩溃。

我将 xmx 和 xms 设置为我的同事应用程序的配置,我在内存上运行诊断程序,但应用程序仍然崩溃。

根据内存诊断的图表,在崩溃的那一刻,非堆内存在增加(因为加载类的增加)。我同事电脑的内存比我机器上的内存好3倍左右。像在另一台机器上一样设置堆内存(xmx 和 xms)后,我怀疑存在堆内存问题(我使用的是最新版本的 java 8)。

有什么办法可以知道堆内存的限制吗?

ram的值对非堆内存有影响吗?

memory rcp jvm-crash java-8

6
推荐指数
0
解决办法
2989
查看次数

运行期间最终的非规范NaN双值更改

我正在编写与R交互的Java代码,其中"NA"值与NaN值区分开来.NA表示值"统计上缺失",即无法收集或无法获得.

class DoubleVector {
     public static final double NA = Double.longBitsToDouble(0x7ff0000000001954L);

     public static boolean isNA(double input) {
         return Double.doubleToRawLongBits(input) == Double.doubleToRawLongBits(NA);
     }

     /// ... 
}
Run Code Online (Sandbox Code Playgroud)

以下单元测试演示了NaN和NA之间的关系,并在我的Windows笔记本电脑上运行良好,但"isNA(NA)#2" 有时在我的ubuntu工作站上失败.

@Test
public void test() {

    assertFalse("isNA(NaN) #1", DoubleVector.isNA(DoubleVector.NaN));
    assertTrue("isNaN(NaN)", Double.isNaN(DoubleVector.NaN));
    assertTrue("isNaN(NA)", Double.isNaN(DoubleVector.NA));
    assertTrue("isNA(NA) #2", DoubleVector.isNA(DoubleVector.NA));
    assertFalse("isNA(NaN)", DoubleVector.isNA(DoubleVector.NaN));
}
Run Code Online (Sandbox Code Playgroud)

从调试开始,看起来DoubleVector.NA被更改为规范的NaN值7ff8000000000000L,但很难分辨,因为将它打印到stdout会给出与调试器不同的值.

此外,如果测试在之前的许多其他测试之后运行,则测试仅失败; 如果我单独运行这个测试,它总是通过.

这是一个JVM错误吗?优化的副作用?

测试总是传递:

java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

测试有时会失败:

java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java …
Run Code Online (Sandbox Code Playgroud)

java jvm-crash

5
推荐指数
1
解决办法
781
查看次数

JVM(64位1.5.0._22)在GCTaskThread崩溃

我们的一个开发服务器时不时地崩溃,报告看起来非常相似.我们认为这是由于内存不足,但我们想验证这一点.你们能协助这个过程吗?您可以在下面找到hs_err文件中的相关信息.

谢谢!延亨默

#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  SIGSEGV (0xb) at pc=0x00002b84b6dee37c, pid=4196, tid=1081399616
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5.0_22-b03 mixed mode)
# Problematic frame:
# V  [libjvm.so+0x5b437c]
#

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

Current thread (0x000000005db44970):  GCTaskThread [id=4200]

siginfo:si_signo=11, si_errno=0, si_code=128, si_addr=0x0000000000000000


Heap
 PSYoungGen      total 291968K, used 291760K [0x00002aaada600000, 0x00002aaaec400000, 0x00002aaaec400000)
  eden space 291136K, 100% used [0x00002aaada600000,0x00002aaaec250000,0x00002aaaec250000)
  from space 832K, 75% used [0x00002aaaec250000,0x00002aaaec2ec288,0x00002aaaec320000)
  to …
Run Code Online (Sandbox Code Playgroud)

java jvm jvm-crash

5
推荐指数
1
解决办法
2322
查看次数

JVM 由于无限 GC 而挂起

我有一个巨大的应用程序在 glassfish 服务器中运行,它创建了许多短期对象,并且我在 JVM 中有以下 GC 配置。

-XX:+DisableExplicitGC
-XX:+UseParallelGC
-XX:+UseParallelOldGC
-XX:-UseAdaptiveSizePolicy
-XX:PermSize=256m
-XX:MaxPermSize=1024m
-Xms7g
-Xmx7g
-XX:NewRatio=2
Run Code Online (Sandbox Code Playgroud)

但 JVM 却因无限 GC 而挂起。我必须重新启动 JVM。我从 GC 日志中获取以下信息。

2.855: [GC 734029K->9736K(7034240K), 0.0133500 secs]
2.869: [Full GC 9736K->9501K(7034240K), 0.1043570 secs]
13.254: [GC 681231K->26506K(7034240K), 0.0251050 secs]
13.280: [Full GC 26506K->26082K(7034240K), 0.2904930 secs]
13.589: [GC 103156K->26224K(7034240K), 0.0015940 secs]
13.590: [Full GC 26224K->24440K(7034240K), 0.2254710 secs]
35.478: [GC 1859512K->131673K(7034240K), 0.0781300 secs]
41.603: [GC 1966745K->351954K(7034240K), 0.1858590 secs]
46.012: [GC 2187026K->502362K(7034240K), 0.2329020 secs]
51.850: [GC 2337434K->608654K(7034240K), 0.2012410 secs]
72.584: [GC 2443726K->727923K(7034240K), …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection jvm jvm-crash

5
推荐指数
1
解决办法
4882
查看次数

在lucene索引期间JVM不断崩溃

JVM不断崩溃.我无法弄清问题是什么.我测试了最新的1.6 jdk以及1.7.一样的问题.

我已经运行了内存检查,并且没有报告错误.我也试过jrockit,那里发生了同样的事情.java代码是一个索引过程,它将文档添加到Lucene索引中.将某些文档添加到索引并提交后,就会发生这种情况.

JVM与以下选项一样启动:

-XX:+UseConcMarkSweepGC -server -d64 -XX:MaxPermSize=1g -Xms4g -Xmx12g
Run Code Online (Sandbox Code Playgroud)

垃圾收集日志的输出(注意最后一行,好像jvm无法执行完整的gc):http://pastebin.com/9EskW4QY

崩溃报告如下所示:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f0db0736950, pid=11730, tid=139682413950736
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) 64-Bit Server VM (14.2-b01 mixed mode linux-amd64 )
# Problematic frame:
# V  [libjvm.so+0x548950]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

---------------  T H R …
Run Code Online (Sandbox Code Playgroud)

java lucene jvm-crash

5
推荐指数
1
解决办法
1533
查看次数

JVM有问题的框架 - EXCEPTION_ACCESS_VIOLATION错误

运行Grails应用程序时出现以下错误:

 A fatal error has been detected by the Java Runtime Environment:

  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6df13df3, pid=1516, tid=8592

 JRE version: 7.0_05-b06
 Java VM: Java HotSpot(TM) Server VM (23.1-b03 mixed mode windows-x86 )
 Problematic frame:
 V  [jvm.dll+0x63df3]

 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:
 E:\Workspace\opal\hs_err_pid1516.log

 If you would like to submit a bug report, please visit:
   http://bugreport.sun.com/bugreport/crash.jsp
Run Code Online (Sandbox Code Playgroud)

只有当我访问名为show.gsp的gsp页面时,才会出现此错误,该页面调用名为s2PublicTrainingLifecycleEdit.gsp的模板

以下是s2PublicTrainingLifecycleEdit.gsp页面的内容.

        <script type="text/javascript">
        $(document).ready(function(){ …
Run Code Online (Sandbox Code Playgroud)

java grails jvm fatal-error jvm-crash

5
推荐指数
1
解决办法
6581
查看次数

内部类&lambda的java.lang.VerifyError

以下代码编译但导致a java.lang.VerifyError.即使未执行run()方法,也会发生错误.

import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;


public class TestCase {

    public static void main(String[] args) {
        new TestCase().run();
    }

    public void run() {
        class Inner {

        }
        Map<String, Inner> map = new HashMap<>();
        Function<String, Inner> function = (name) -> {
            Inner i = map.get(name);
            if (i == null) {
                i = new Inner();
                map.put(name, i);
            }
            return i;

        };
        function.apply("test");
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

Exception in thread "main" java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    TestCase.lambda$0(Ljava/util/Map;Ljava/lang/String;)LTestCase$1Inner; …
Run Code Online (Sandbox Code Playgroud)

java lambda jvm-crash

5
推荐指数
1
解决办法
1776
查看次数