2017-02-20 13 views
0

IHM에서 swt/jface를 사용하는 RCP Java 프로젝트에서 작업 중입니다. 응용 프로그램의 충돌을 일으키는 심각한 문제가 있습니다. pid 파일을 검사하려고했지만 pid 파일의 스택에있는 마지막 메소드가 다릅니다. xmx와 xms가 증가했지만 충돌은 남아 있습니다. 문제를 해결할 수있는 색인을 찾습니다.Java 8에서 JAVA FATAL ERROR를 해결할 수있는 솔루션이 있습니까?

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 인수 등 환경 변수는 다음과 같습니다

> 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의 로그를 통해보고 크래시 중 작업 영역은 있지만 로그가 없습니다.

Java 8의 치명적인 오류를 해결하기위한 가능한 해결책이나 단계가 있습니까?

+3

도움을 줄 수있는 충분한 정보가 제공되지 않았습니다. 충돌은 무엇입니까? 자세한 내용을 알려주세요. SWT와 JFace가있는 Eclipse RCP는 일반적으로 Java 8에서 잘 작동합니다. –

+0

무거운 e3 앱이므로 편집기를 열어 충돌을 재현 할 수 있지만 충돌이 발생하는 방법과 위치를 감지하는 데 도움이되는 명백한 추적은 없습니다. 비정상적인 메모리 동작을 감지하는 데 사용되는 모든 차트는 괜찮습니다. – Anas

+0

작업 영역 .metdata 디렉터리에서 .log 파일을 찾습니다. –

답변

0

RAM을 확인하십시오.

메모리 진단 도구를 실행하고 내 RAM 모듈 중 하나에 결함이있는 것으로 확인 될 때까지 나는 아주 동일한 오류 EXCEPTION_ACCESS_VIOLATION (0xc0000005)을 몇 주 동안 보냈습니다.

참조 : JVM Crashing EXCEPTION_ACCESS_VIOLATION (0xc0000005)

PS : 나는 당신이 더 빨리 문제를 해결할 수있는 단지 있도록 대답을 게시하도록하겠습니다. 당신이 내 대답을 인정하자마자 아마도 그 질문을 속임수로 표시 할 것입니다.

+0

난 그냥 Windows 도구 진단 메모리를 실행하지만 오류가 발견되지 않았습니다, 그리고 이미 메모리 (힙 및 비 힙) 차트를 볼 수 있지만 메모리가 자신의 할당을 초과했습니다, 혹시이 문제가 발생하는 경우 궁금해. 아무런 메모리 문제도 발견되지 않았습니다. – Anas