【问题标题】:Is there any solution to solve JAVA FATAL ERROR in java 8?有没有解决java 8中的JAVA FATAL ERROR的解决方案?
【发布时间】:2017-02-20 21:48:41
【问题描述】:

我正在 IHM 中使用 swt/jface 开发一个 RCP java 项目,我遇到了一个导致应用程序崩溃的严重问题。 我尝试检查 pid 文件,但 pid 文件中堆栈中的最后一个方法不同。 我增加了 xmx 和 xms 但崩溃仍然存在,我正在寻找一个索引来帮助我解决它但没有办法。

下面是 pid 文件的快照

> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000005f8c04fa, pid=5268, tid=0x00000000000008c0
> #
> # JRE version: Java(TM) SE Runtime Environment (8.0_102-b14) (build 1.8.0_102-b14)
> # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.102-b14 mixed mode windows-amd64 compressed oops)
> # Problematic frame:
> # C  0x000000005f8c04fa
> #
> # 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.java.com/bugreport/crash.jsp
> # The crash happened outside the Java Virtual Machine in native code.
> # See problematic frame for where to report the bug.
> #
> 
> ---------------  T H R E A D  ---------------
> 
> Current thread (0x000000000226f800):  JavaThread "main"
> [_thread_in_native, id=2240,
> stack(0x00000000026a0000,0x00000000027a0000)]
> 
> siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000013
> 
> Registers: RAX=0x0000000000040b3e, RBX=0x0000000000000002,
> RCX=0x0000000040b3ed30, RDX=0x0000000000000002 RSP=0x000000000279a700,
> RBP=0x0000000040b3e000, RSI=0x0000000040b3e000, RDI=0x0000000000000000
> R8 =0x0000000000000001, R9 =0x0000000000000001,
> R10=0x0000000004deb3c9, R11=0x0000000004deb398 R12=0x00000000609a8730,
> R13=0x0000000000000000, R14=0x0000000000000001, R15=0x0000000000000000
> RIP=0x000000005f8c04fa, EFLAGS=0x0000000000010202
> 
> Top of Stack: (sp=0x000000000279a700) 0x000000000279a700:  
> 000000000279a848 0000000000000000 0x000000000279a710:  
> 000000000226f800 000000000279a7d8 0x000000000279a720:  
> 000000000226f800 000000000279a808 0x000000000279a730:  
> 0000000000000000 0000000000470000 0x000000000279a740:  
> 000000000279a7d8 000000005f8bf2e3 0x000000000279a750:  
> 0000000000000002 0000000040b3ed30 0x000000000279a760:  
> 000000000279a7f0 0000000000470000 0x000000000279a770:  
> 0000000000000000 0000000004deb447 0x000000000279a780:  
> 0000000024385638 00000006dce5dbb0 0x000000000279a790:  
> 0000000000421054 0000000002c06f44 0x000000000279a7a0:  
> 0000000000000002 0000000004e7aef4 0x000000000279a7b0:  
> 0000000000000000 0000000000000000 0x000000000279a7c0:  
> 0000000036bb84e0 0000000000000000 0x000000000279a7d0:  
> 000000000279a868 00000006dd0f16a0 0x000000000279a7e0:  
> 00000006dd0f16a0 0000000002a77f10 0x000000000279a7f0:  
> 000000000279a868 0000000002a77f10 
> 
> Instructions: (pc=0x000000005f8c04fa) 0x000000005f8c04da:   81 e3 ff
> 07 00 00 48 03 db 49 39 b4 dc d0 08 00 0x000000005f8c04ea:   00 75 28
> 49 8b 9c dc d8 08 00 00 48 85 db 74 20 0x000000005f8c04fa:   0f b6 43
> 11 41 3b c0 75 17 41 83 f8 01 0f 85 80 0x000000005f8c050a:   01 00 00
> ff 43 18 e9 78 01 00 00 48 8b 5c 24 50 
> 
> 
> Register to memory mapping:
> 
> RAX=0x0000000000040b3e is an unknown value RBX=0x0000000000000002 is
> an unknown value RCX=0x0000000040b3ed30 is an unknown value
> RDX=0x0000000000000002 is an unknown value RSP=0x000000000279a700 is
> pointing into the stack for thread: 0x000000000226f800
> RBP=0x0000000040b3e000 is an unknown value RSI=0x0000000040b3e000 is
> an unknown value RDI=0x0000000000000000 is an unknown value R8
> =0x0000000000000001 is an unknown value R9 =0x0000000000000001 is an unknown value R10=0x0000000004deb3c9 is at entry_point+73 in
> (nmethod*)0x0000000004deb210 R11=0x0000000004deb398 is at
> entry_point+24 in (nmethod*)0x0000000004deb210 R12=0x00000000609a8730
> is an unknown value R13=0x0000000000000000 is an unknown value
> R14=0x0000000000000001 is an unknown value R15=0x0000000000000000 is
> an unknown value
> 
> 
> Stack: [0x00000000026a0000,0x00000000027a0000], 
> sp=0x000000000279a700,  free space=1001k Native frames: (J=compiled
> Java code, j=interpreted, Vv=VM code, C=native code) C 
> 0x000000005f8c04fa C  0x000000005f8bf2e3 C  0x0000000004deb447
> 
> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) J 10363
> org.eclipse.swt.internal.win32.OS.HeapAlloc(JII)J (0 bytes) @
> 0x0000000004deb3c9 [0x0000000004deb380+0x49] j 
> org.eclipse.swt.widgets.CoolBar.createItem(Lorg/eclipse/swt/widgets/CoolItem;I)V+114
> j 
> org.eclipse.swt.widgets.CoolItem.<init>(Lorg/eclipse/swt/widgets/CoolBar;I)V+17
> j 
> fr.ifp.temisflow.api.basintools.ui.ui.widget.CoolItemFactory.createCoolItem(ILorg/eclipse/swt/widgets/Control;II)Lorg/eclipse/swt/widgets/CoolItem;+58

我的虚拟机参数和环境变量是:

> VM Arguments: jvm_args:
> -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:58325 -Xms400m -Xmx4000m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC -XX:+AggressiveOpts -Dfile.encoding=Cp1252  java_command: org.eclipse.equinox.launcher.Main -launcher

> -os win32 -ws win32 -arch x86_64 -nl en_GB -consoleLog java_class_path (initial):
> C:\Users\.metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins\org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
> Launcher Type: SUN_STANDARD
> 
> Environment Variables: PATH=C:/Program
> Files/Java/jre1.8.0_102/bin/server;C:/Program
> Files/Java/jre1.8.0_102/bin;C:/Program
> Files/Java/jre1.8.0_102/lib/amd64;C:\Program Files (x86)\Common
> Files\Intel\Shared Libraries\redist\intel64\mpirt;C:\Program Files
> (x86)\Common Files\Intel\Shared
> Libraries\redist\intel64\compiler;C:\ProgramData\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program
> Files (x86)\WinMerge;C:\Program Files (x86)\Common
> Files\SYSTEM\MSMAPI\1036;C:\Users\eclipse;
> USERNAME=** OS=Windows_NT PROCESSOR_IDENTIFIER=Intel64 Family 6
> Model 26 Stepping 5, GenuineIntel
> 
> 
> 
> ---------------  S Y S T E M  ---------------
> 
> OS: Windows 7 , 64 bit Build 7601 (6.1.7601.23572)
> 
> CPU:total 4 (4 cores per cpu, 2 threads per core) family 6 model 26
> stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1,
> sse4.2, popcnt, ht, tsc, tscinvbit, tscinv
> 
> Memory: 4k page, physical 12580408k(5019496k free), swap
> 25158956k(16067112k free)
> 
> vm_info: Java HotSpot(TM) 64-Bit Server VM (25.102-b14) for
> windows-amd64 JRE (1.8.0_102-b14), built on Jun 22 2016 13:15:21 by
> "java_re" with MS VC++ 10.0 (VS2010)

我还查看了工作区中 .metadata 中的日志,但在崩溃期间没有日志。

是否有任何可能的解决方案或步骤或规则skout来解决java 8中的java致命错误?

【问题讨论】:

  • 您没有给我们提供足够的信息来提供帮助。什么是崩溃?给我们更多的细节。带有 SWT 和 JFace 的 Eclipse RCP 通常适用于 Java 8。
  • 这是一个沉重的 e3 应用程序,我可以通过尝试打开编辑器来重现崩溃,但没有明显的痕迹可以帮助我们检测崩溃发生的方式和位置,我运行 yourkit 来检测异常的内存行为但所有图表似乎都还可以。
  • 在工作区的 .metdata 目录中查找 .log 文件。

标签: java-8 swt rcp


【解决方案1】:

检查你的内存。

我每天都遇到同样的错误EXCEPTION_ACCESS_VIOLATION (0xc0000005),持续数周,直到我运行内存诊断工具并发现我的一个 RAM 模块出现故障。

参考:JVM Crashing EXCEPTION_ACCESS_VIOLATION (0xc0000005)

周年编辑:自从我通过更换有故障的 RAM 模块解决问题以来已经有一年多的时间了。现在,几个星期以来,我又遇到了同样的错误。我只是运行内存诊断工具和 BAM!它再次检测到内存错误。所以,认真的人:检查你的 RAM。

【讨论】:

  • 我只是运行 windows 工具来诊断内存但没有发现错误,我已经运行 yourkit 来查看内存(堆和非堆)图表但没有内存超出他的分配,我想知道如果有人遇到过这个问题,但没有发现内存问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
  • 2015-02-04
相关资源
最近更新 更多