Java Tomcat崩溃是由于malloc_整合的JDK中的本机代码

Java Tomcat崩溃是由于malloc_整合的JDK中的本机代码,java,tomcat,Java,Tomcat,当JavaThread“Finalizer”以下面的hs_err_pid在JVM中运行时,生产中的tomcat服务器经常崩溃 此外,错误来自libc.so中malloc_consolidate的Java本机代码 # Problematic frame: # C [libc.so.6+0x75f85] malloc_consolidate+0xf5 # --------------- T H R E A D --------------- Current thread (0x00007f

当JavaThread“Finalizer”以下面的hs_err_pid在JVM中运行时,生产中的tomcat服务器经常崩溃

此外,错误来自libc.so中malloc_consolidate的Java本机代码

# Problematic frame:
# C  [libc.so.6+0x75f85]  malloc_consolidate+0xf5
#
---------------  T H R E A D  ---------------

Current thread (0x00007f2c6018f000):  JavaThread "Finalizer" daemon [_thread_in_native, id=11112, stack(0x00007f2c3f1f2000,0x00007f2c3f2f3000)]


Stack: [0x00007f2c3f1f2000,0x00007f2c3f2f3000],  sp=0x00007f2c3f2f13e0,  free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libc.so.6+0x75f85]  malloc_consolidate+0xf5

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 2177  java.util.zip.Inflater.end(J)V (0 bytes) @ 0x00007f2c50e3d301 [0x00007f2c50e3d2c0+0x41]
J 3502 C2 java.util.zip.ZipFile.close()V (223 bytes) @ 0x00007f2c514371c4 [0x00007f2c51436900+0x8c4]
J 7022 C2 java.util.zip.ZipFile.finalize()V (5 bytes) @ 0x00007f2c511b43e0 [0x00007f2c511b43a0+0x40]
J 11603% C2 java.lang.ref.Finalizer$FinalizerThread.run()V (55 bytes) @ 0x00007f2c528d6f78 [0x00007f2c528d6cc0+0x2b8]
v  ~StubRoutines::call_stub

Heap:
 PSYoungGen      total 2318848K, used 222178K [0x0000000720000000, 0x00000007c0000000, 0x00000007c0000000)
  eden space 2016256K, 5% used [0x0000000720000000,0x0000000726d4fbe0,0x000000079b100000)
  from space 302592K, 36% used [0x000000079b100000,0x00000007a1ca8fe0,0x00000007ad880000)
  to   space 289792K, 0% used [0x00000007ae500000,0x00000007ae500000,0x00000007c0000000)
 ParOldGen       total 2586624K, used 522596K [0x00000005e0000000, 0x000000067de00000, 0x0000000720000000)
  object space 2586624K, 20% used [0x00000005e0000000,0x00000005ffe59390,0x000000067de00000)
 Metaspace       used 148258K, capacity 154058K, committed 154200K, reserved 1183744K
  class space    used 18157K, capacity 19308K, committed 19328K, reserved 1048576K

Internal exceptions (10 events):
Event: 61.804 Thread 0x00007f2c2c0c6800 Exception <a 'java/io/IOException'> (0x0000000798129018) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp, line 709]
Event: 61.816 Thread 0x00007f2c2c0c6800 Exception <a 'java/io/IOException'> (0x0000000798304680) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp, line 709]
Event: 61.816 Thread 0x00007f2c2c0c6800 Exception <a 'java/io/IOException'> (0x0000000798305b90) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp, line 709]
Event: 62.015 Thread 0x00007f2c2c0bb800 Exception <a 'java/io/IOException'> (0x0000000720db4188) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp, line 709]
Event: 62.015 Thread 0x00007f2c2c0bb800 Exception <a 'java/io/IOException'> (0x0000000720db47e0) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp, line 709]
Event: 62.046 Thread 0x00007f2c2c0bb800 Exception <a 'java/io/IOException'> (0x0000000720dbc2f0) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp, line 709]
Event: 62.046 Thread 0x00007f2c2c0bb800 Exception <a 'java/io/IOException'> (0x0000000720dbd800) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp, line 709]
Event: 62.082 Thread 0x00007f2c606f8800 Exception <a 'java/lang/InternalError'> (0x0000000721cfe9b8) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp, line 735]
Event: 62.082 Thread 0x00007f2c606f8800 Exception <a 'java/lang/InternalError'> (0x0000000721cfeda8) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp, line 735]
Event: 62.082 Thread 0x00007f2c606f8800 Exception <a 'java/lang/InternalError'> (0x0000000721cfeda8) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jvm.cpp, line 1394]

VM Arguments:
jvm_args: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heap -Djava.util.Arrays.useLegacyMergeSort=true -Xms3072M -Xmx7680M -Dsun.zip.disableMemoryMapping=true 
#有问题的框架:
#C[libc.so.6+0x75f85]malloc_consolution+0xf5
#
---------------R E A D---------------
当前线程(0x00007f2c6018f000):JavaThread“Finalizer”守护程序[_thread_in_native,id=11112,堆栈(0x00007f2c3f2000,0x00007f2c3f3000)]
堆栈:[0x00007f2c3f1f2000,0x00007f2c3f2f3000],sp=0x00007f2c3f2f13e0,可用空间=1020k
本机框架:(J=编译的Java代码,J=解释的,Vv=虚拟机代码,C=本机代码)
C[libc.so.6+0x75f85]malloc_consolution+0xf5
Java框架:(J=编译的Java代码,J=解释的,Vv=虚拟机代码)
J 2177 java.util.zip.Inflater.end(J)V(0字节)@0x00007f2c50e3d301[0x00007f2c50e3d2c0+0x41]
J 3502 C2 java.util.zip.ZipFile.close()V(223字节)@0x00007f2c514371c4[0x00007f2c51436900+0x8c4]
J 7022 C2 java.util.zip.ZipFile.finalize()V(5字节)@0x00007f2c511b43e0[0x00007f2c511b43a0+0x40]
J 11603%C2 java.lang.ref.Finalizer$FinalizerThread.run()V(55字节)@0x00007f2c528d6f78[0x00007f2c528d6cc0+0x2b8]
v~StubRoutines::调用_stub
堆:
PSYoungGen总计2318848K,使用222178K[0x0000000720000000,0x00000007c0000000,0x00000007c0000000)
伊甸园空间2016256K,5%已使用[0x0000000720000000,0x0000000726d4fbe0,0x000000079b100000)
从空间302592K中,36%已使用[0x000000079b100000,0x00000007a1ca8fe0,0x00000007ad880000)
对于空间289792K,0%已使用[0x00000007ae500000,0x00000007ae500000,0x00000007c0000000)
ParOldGen总计2586624K,使用522596K[0x00000005e0000000,0x000000067de00000,0x0000000720000000)
对象空间2586624K,已使用20%[0x00000005e0000000,0x00000005ffe59390,0x000000067de00000)
元空间使用148258K,容量154058K,提交154200K,保留1183744K
类空间使用18157K,容量19308K,提交19328K,保留1048576K
内部异常(10个事件):
事件:61.804线程0x00007f2c2c0c6800异常(0x0000000798129018)在[/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hospot/src/share/vm/prims/jni.cpp,第709行]抛出
事件:61.816线程0x00007f2c2c0c6800异常(0x0000000798304680)在[/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp,第709行]抛出
事件:61.816线程0x00007f2c2c0c6800异常(0x0000000798305b90)在[/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp,第709行]抛出
事件:62.015线程0x00007f2c2c0bb800异常(0x0000000720db4188)在[/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp,第709行]抛出
事件:62.015线程0x00007f2c2c0bb800异常(0x0000000720db47e0)在[/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp,第709行]抛出
事件:62.046线程0x00007f2c2c0bb800异常(0x0000000720dbc2f0)在[/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp,第709行]抛出
事件:62.046线程0x00007f2c2c0bb800异常(0x0000000720dbd800)在[/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp,第709行]抛出
事件:62.082线程0x00007f2c606f8800异常(0x0000000721cfe9b8)在[/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp,第735行]抛出
事件:62.082线程0x00007f2c606f8800异常(0x0000000721cfeda8)引发于[/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jni.cpp,第735行]
事件:62.082线程0x00007f2c606f8800异常(0x0000000721cfeda8)引发于[/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u121/8372/hotspot/src/share/vm/prims/jvm.cpp,第1394行]
VM参数:
jvm_args:-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/tmp/heap-Djava.util.Arrays.useLegacyMergeSort=true-Xms3072M-Xmx7680M-Dsun.zip.disableMemoryMapping=true

-Dsun.zip.disableMemoryMapping=true应该可以解决这个问题,JDK 9中的zip实现得到了改进,崩溃表明,在终结器尝试关闭文件句柄期间,它仍然没有被释放。
升级JDK9应该可以避免这个问题-

我可以知道您使用的是哪种java和tomcat版本的java:1.8.更新121和tomcat 8.15 tomcat 8.0.15或8.5.15吗?我可以知道您使用的是哪种ide吗?tomcat是8.0.15.ide是IntelliJ,但这有什么关系吗?Anks@Fairoz.我已经实现了上述标志,但没有帮助。Also、 等待JDK 9做好生产准备。这将发生在7月,同时您可以使用9个ea版本,请分享您的反馈:。我尝试使用1.9.ea138更新并根据它移植代码。但一段时间后,版本升级到152,自138以来JDK中的版本发生了很大变化。因此,我无法在158版本上移植使用现有hibernate和spring版本的sion。它需要的不仅仅是jdk更新。