Java异常\u访问\u冲突-严格来说是JVM问题?对我来说什么都没有?

Java异常\u访问\u冲突-严格来说是JVM问题?对我来说什么都没有?,java,jvm,jvm-crash,ntdll,Java,Jvm,Jvm Crash,Ntdll,这条消息没有看上去那么长-我只在末尾附上了一份冗长的日志报告 大家好 我正在运行一个用Java实现的实验爬虫程序。 最近,在36小时的操作后,JVM崩溃,发出了一个异常访问冲突日志文件。我读了很多关于这个文件的书,但对我来说还是有点神秘。以下是生成的日志文件中的相关“堆栈”版本: Stack: [0x0000000033270000,0x0000000033370000], sp=0x000000003336f8b0, free space=1022k Native frames: (J=c

这条消息没有看上去那么长-我只在末尾附上了一份冗长的日志报告

大家好

我正在运行一个用Java实现的实验爬虫程序。 最近,在36小时的操作后,JVM崩溃,发出了一个异常访问冲突日志文件。我读了很多关于这个文件的书,但对我来说还是有点神秘。以下是生成的日志文件中的相关“堆栈”版本:

Stack: [0x0000000033270000,0x0000000033370000],  sp=0x000000003336f8b0,  free space=1022k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0x138998]
V  [jvm.dll+0x3f238a]
V  [jvm.dll+0x3efa30]
V  [jvm.dll+0x3ecfbe]
V  [jvm.dll+0x299f7a]
C  [msvcr100.dll+0x21d9f]
C  [msvcr100.dll+0x21e3b]
C  [kernel32.dll+0x159ed]
C  [ntdll.dll+0x2c541]
正如您所看到的,至少在这个日志文件中,错误甚至不是从一些java代码开始的,而是从ntdll库开始的,在该库中,指令执行在jvm本身出现异常[编辑:或者相反?以ntdll结束]。我不想把它当作“好吧……我会重新安装JVM和windows,也许它会工作”(虽然我肯定会这么做),但是试着看看我能不能做些什么。一些已知的问题或可以应用的修复,而不是我所说的那些显而易见的问题或修复。问题是这个错误是在超过36小时后发生的,所以很难重现

我还需要说我正在调用

System.gc();
每隔大约8秒,以确保清除内存。如果这在任何方面都很重要的话\

我不使用任何图形库

我没有使用任何JNI代码

非常感谢您的阅读和帮助

阿米尔

附件-几乎完整的日志文件(hs_err_pid10544.log),没有非常长的线程详细信息:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000070ae8998, pid=10544, tid=10872
#
# JRE version: Java(TM) SE Runtime Environment (8.0_65-b17) (build 1.8.0_65-b17)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.65-b01 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# V  [jvm.dll+0x138998]
#
# 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
#

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

Current thread (0x0000000002164800):  GCTaskThread [stack: 0x0000000033270000,0x0000000033370000] [id=10872]

siginfo: ExceptionCode=0xc0000005, reading address 0xffffffffffffffff

Registers:
RAX=0x0000000033730000, RBX=0x0000000000001991, RCX=0x0000000000000000, RDX=0x000000000000002a
RSP=0x000000003336f8b0, RBP=0x00000000021dd320, RSI=0x000000069fecdac4, RDI=0x000000028a46a950
R8 =0x007ffffffe052354, R9 =0x00000000021dd320, R10=0x000000000001c7f9, R11=0x0000000692210540
R12=0x000000069fecdbd0, R13=0x0000000000342e00, R14=0x000000069f1c23c0, R15=0x0000000000400000
RIP=0x0000000070ae8998, EFLAGS=0x0000000000010202

Top of Stack: (sp=0x000000003336f8b0)
0x000000003336f8b0:   000000003f7c4008 0000000070ac3166
0x000000003336f8c0:   0000000688823308 0000000070da1559
0x000000003336f8d0:   0000000000000006 0000000070bcb202
0x000000003336f8e0:   0000000000000000 0000000002164b60
0x000000003336f8f0:   0000000002159f60 0000000000342c00
0x000000003336f900:   0000000000001991 0000000070da238a
0x000000003336f910:   00000000021dd320 000000069f1c23c0
0x000000003336f920:   0000000070ff92b8 00b2ea6700001991
0x000000003336f930:   0acdfc080001c74b 0acdfc090001c74b
0x000000003336f940:   0acdb6a10001c70f 000000069f1c23c0
0x000000003336f950:   0000000600342c00 0000000070ae8a21
0x000000003336f960:   000000003eae9b00 0000000070bcb202
0x000000003336f970:   0000000002164800 0000000002159f60
0x000000003336f980:   0000000002164b70 0000000002164b60
0x000000003336f990:   0000000070ff92b8 0000000000000004
0x000000003336f9a0:   00000000666b8c60 0000000000000000 

Instructions: (pc=0x0000000070ae8998)
0x0000000070ae8978:   05 33 1c 6d 00 49 c1 e8 03 49 d3 e8 41 0f b6 c0
0x0000000070ae8988:   49 c1 e8 06 24 3f 0f b6 d0 48 8b 05 48 1c 6d 00
0x0000000070ae8998:   4a 8b 0c c0 48 0f a3 d1 72 3e 48 8b cf e8 16 0f
0x0000000070ae89a8:   fd ff 84 c0 74 32 48 8b d7 48 8b cd e8 e7 dd fc 


Register to memory mapping:

RAX=0x0000000033730000 is an unknown value
RBX=0x0000000000001991 is an unknown value
RCX=0x0000000000000000 is an unknown value
RDX=0x000000000000002a is an unknown value
RSP=0x000000003336f8b0 is an unknown value
RBP=0x00000000021dd320 is an unknown value
RSI=0x000000069fecdac4 is pointing into object: 0x000000069f1c23c0
[Ljava.util.HashMap$Node; 
 - klass: 'java/util/HashMap$Node'[]
 - length: 4194304
RDI=0x000000028a46a950 is pointing into the stack for thread: 0x000000003fdbb800
R8 =0x007ffffffe052354 is an unknown value
R9 =0x00000000021dd320 is an unknown value
R10=0x000000000001c7f9 is an unknown value
R11=0x0000000692210540 is an oop
java.util.HashMap$Node 
 - klass: 'java/util/HashMap$Node'
R12=0x000000069fecdbd0 is pointing into object: 0x000000069f1c23c0
[Ljava.util.HashMap$Node; 
 - klass: 'java/util/HashMap$Node'[]
 - length: 4194304
R13=0x0000000000342e00 is an unknown value
R14=0x000000069f1c23c0 is an oop
[Ljava.util.HashMap$Node; 
 - klass: 'java/util/HashMap$Node'[]
 - length: 4194304
R15=0x0000000000400000 is an unknown value


Stack: [0x0000000033270000,0x0000000033370000],  sp=0x000000003336f8b0,  free space=1022k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0x138998]
V  [jvm.dll+0x3f238a]
V  [jvm.dll+0x3efa30]
V  [jvm.dll+0x3ecfbe]
V  [jvm.dll+0x299f7a]
C  [msvcr100.dll+0x21d9f]
C  [msvcr100.dll+0x21e3b]
C  [kernel32.dll+0x159ed]
C  [ntdll.dll+0x2c541]

... (Some code I didn't copy, contains a lot of threads descriptions) ...

Dynamic libraries:
0x000000013fd20000 - 0x000000013fd57000     C:\Program Files\Java\jdk1.8.0_65\bin\javaw.exe
0x00000000773f0000 - 0x0000000077599000     C:\Windows\SYSTEM32\ntdll.dll
0x00000000772d0000 - 0x00000000773ef000     C:\Windows\system32\kernel32.dll
0x000007fefd310000 - 0x000007fefd37c000     C:\Windows\system32\KERNELBASE.dll
0x000007fefee70000 - 0x000007fefef4b000     C:\Windows\system32\ADVAPI32.dll
0x000007fefdd00000 - 0x000007fefdd9f000     C:\Windows\system32\msvcrt.dll
0x000007fefee50000 - 0x000007fefee6f000     C:\Windows\SYSTEM32\sechost.dll
0x000007fefd690000 - 0x000007fefd7bd000     C:\Windows\system32\RPCRT4.dll
0x00000000771d0000 - 0x00000000772ca000     C:\Windows\system32\USER32.dll
0x000007feff600000 - 0x000007feff667000     C:\Windows\system32\GDI32.dll
0x000007feff670000 - 0x000007feff67e000     C:\Windows\system32\LPK.dll
0x000007fefd5c0000 - 0x000007fefd689000     C:\Windows\system32\USP10.dll
0x000007fefbc60000 - 0x000007fefbe54000     C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_fa396087175ac9ac\COMCTL32.dll
0x000007fefdc80000 - 0x000007fefdcf1000     C:\Windows\system32\SHLWAPI.dll
0x000007feff350000 - 0x000007feff37e000     C:\Windows\system32\IMM32.DLL
0x000007fefeca0000 - 0x000007fefeda9000     C:\Windows\system32\MSCTF.dll
0x0000000074210000 - 0x00000000742e2000     C:\Program Files\Java\jdk1.8.0_65\jre\bin\msvcr100.dll
0x00000000709b0000 - 0x0000000071239000     C:\Program Files\Java\jdk1.8.0_65\jre\bin\server\jvm.dll
0x000007fee6bf0000 - 0x000007fee6bf9000     C:\Windows\system32\WSOCK32.dll
0x000007feff280000 - 0x000007feff2cd000     C:\Windows\system32\WS2_32.dll
0x000007feff190000 - 0x000007feff198000     C:\Windows\system32\NSI.dll
0x000007feedec0000 - 0x000007feedefb000     C:\Windows\system32\WINMM.dll
0x000007fefc2f0000 - 0x000007fefc2fc000     C:\Windows\system32\VERSION.dll
0x00000000775c0000 - 0x00000000775c7000     C:\Windows\system32\PSAPI.DLL
0x0000000074430000 - 0x000000007443f000     C:\Program Files\Java\jdk1.8.0_65\jre\bin\verify.dll
0x0000000074400000 - 0x0000000074429000     C:\Program Files\Java\jdk1.8.0_65\jre\bin\java.dll
0x00000000743e0000 - 0x00000000743f6000     C:\Program Files\Java\jdk1.8.0_65\jre\bin\zip.dll
0x000007fefdda0000 - 0x000007fefeb28000     C:\Windows\system32\SHELL32.dll
0x000007fefd7c0000 - 0x000007fefd9c3000     C:\Windows\system32\ole32.dll
0x000007fefd210000 - 0x000007fefd21f000     C:\Windows\system32\profapi.dll
0x00000000743c0000 - 0x00000000743da000     C:\Program Files\Java\jdk1.8.0_65\jre\bin\net.dll
0x000007fefc9e0000 - 0x000007fefca35000     C:\Windows\system32\mswsock.dll
0x000007fefc9d0000 - 0x000007fefc9d7000     C:\Windows\System32\wship6.dll
0x000007fefc3c0000 - 0x000007fefc3c7000     C:\Windows\System32\wshtcpip.dll
0x000007fefc820000 - 0x000007fefc87b000     C:\Windows\system32\DNSAPI.dll
0x000007fefafa0000 - 0x000007fefafc7000     C:\Windows\system32\IPHLPAPI.DLL
0x000007fefaf90000 - 0x000007fefaf9b000     C:\Windows\system32\WINNSI.DLL
0x000007fefa520000 - 0x000007fefa528000     C:\Windows\system32\rasadhlp.dll
0x000007fefae90000 - 0x000007fefaee3000     C:\Windows\System32\fwpuclnt.dll
0x0000000074390000 - 0x00000000743b4000     C:\Program Files\Java\jdk1.8.0_65\jre\bin\sunec.dll
0x000007fefca40000 - 0x000007fefca57000     C:\Windows\system32\CRYPTSP.dll
0x000007fefc700000 - 0x000007fefc747000     C:\Windows\system32\rsaenh.dll
0x000007fefd5a0000 - 0x000007fefd5be000     C:\Windows\system32\USERENV.dll
0x000007fefd0a0000 - 0x000007fefd0af000     C:\Windows\system32\CRYPTBASE.dll
0x000007fefada0000 - 0x000007fefadb1000     C:\Windows\system32\dhcpcsvc6.DLL
0x000007fefae20000 - 0x000007fefae38000     C:\Windows\system32\dhcpcsvc.DLL
0x0000000074370000 - 0x0000000074381000     C:\Program Files\Java\jdk1.8.0_65\jre\bin\nio.dll
0x000007fefb2b0000 - 0x000007fefb2c5000     C:\Windows\system32\NLAapi.dll
0x000007fee6930000 - 0x000007fee6945000     C:\Windows\system32\napinsp.dll
0x000007fee6910000 - 0x000007fee6929000     C:\Windows\system32\pnrpnsp.dll
0x000007fee6900000 - 0x000007fee690b000     C:\Windows\System32\winrnr.dll
0x0000000074360000 - 0x000000007436b000     C:\Program Files\Java\jdk1.8.0_65\jre\bin\sunmscapi.dll
0x000007fefd3f0000 - 0x000007fefd55c000     C:\Windows\system32\CRYPT32.dll
0x000007fefd200000 - 0x000007fefd20f000     C:\Windows\system32\MSASN1.dll
0x000007fefce40000 - 0x000007fefce4b000     C:\Windows\system32\Secur32.dll
0x000007fefd010000 - 0x000007fefd035000     C:\Windows\system32\SSPICLI.DLL
0x000007fefc600000 - 0x000007fefc60a000     C:\Windows\system32\credssp.dll
0x000007fefc970000 - 0x000007fefc9c2000     C:\Windows\system32\msv1_0.DLL
0x000007fefccf0000 - 0x000007fefcd04000     C:\Windows\system32\cryptdll.dll
0x0000000074350000 - 0x0000000074359000     C:\Program Files\Java\jdk1.8.0_65\jre\bin\w2k_lsa_auth.dll
0x000007fee43a0000 - 0x000007fee44c5000     C:\Windows\system32\dbghelp.dll

VM Arguments:
jvm_args: -Xmx5120m -Xss512m -Dfile.encoding=Cp1255 
java_command: main.Hub
java_class_path (initial): C:\Users\Me\workspace\Bot\bin;C:\Users\Me\workspace\avro-1.7.6.jar;C:\Users\Me\workspace\jsoup-1.7.3.jar;C:\Users\Me\workspace\jlangdetect-0.1.jar
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=C:/Program Files/Java/jre1.8.0_65/bin/server;C:/Program Files/Java/jre1.8.0_65/bin;C:/Program Files/Java/jre1.8.0_65/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\eclipse;
USERNAME=Me
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 60 Stepping 3, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows 7 , 64 bit Build 7601 (6.1.7601.18409)

CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 60 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, rtm, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2

Memory: 4k page, physical 16645332k(6688136k free), swap 33288800k(22549536k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (25.65-b01) for windows-amd64 JRE (1.8.0_65-b17), built on Oct  6 2015 16:39:20 by "java_re" with MS VC++ 10.0 (VS2010)

time: Sun Feb 07 07:52:26 2016
elapsed time: 134890 seconds (1d 13h 28m 10s)

这是不相关的,但您可能不需要告诉jvm您想运行GC。@DaveNewton是的,您是对的,jvm通常在GC方面做得很好,但我注意到,由于调用和终止了大量线程,每隔几秒钟运行GC就会清除大量的垃圾堆积。它大大降低了内存使用率(通过查看windows任务管理器的“内存使用率”选项卡可以清楚地看到)。感谢您的输入。JVM将根据需要减少自己的内存使用。您还依赖于JVM实现(当然,当您要求它运行GC时,会有几个运行GC),但不能保证总是这样。如果你需要记忆,你需要记忆。我明白了。我会再测试一次,这可能是个错误。我会确保您拥有最新的JVM和windows更新。