Garbage Collector First und JMap EOF-Fehler
Wir überarbeiten den Produktionsserver-Heap unseres Kunden, um Speicherlecks zu erkennen und zu beheben. Dazu verwenden wir regelmäßig jmap, um die notwendigen Informationen zu sammeln.
Aber letzte Woche konnten wir den Dump nicht ausführen, da er einen EOF-Fehler auslöste und die Tomcat-Instanz herunterfuhr.
Ich habe im Internet gesucht, aber keine konkreten Informationen zu diesem Fehler gefunden. Wir haben festgestellt, dass es nur bei der Verwendung der auftrittGc First
Garbage Collector-Algorithmus.
Dies ist die Befehlszeile, mit der wir die jmap ausgeführt haben:
jmap -dump:format=b,file=heap.bin <PID>
Java-Version auf dem Server: JDK 1.7.0_7 x64
Hat jemand diese Art von Fehler bereits konfrontiert? Möglicherweise fehlt eine Konfiguration oder ein Patch für Java / Jmap ist erforderlich.
AKTUALISIEREN
Einige weitere Informationen, die wir zu diesem Fehler gesammelt haben:
[root]# jmap -dump:format=b,file=heap.bin 7806
Dumping heap to /tmp/heap.bin ...
Exception in thread "main" java.io.IOException: Premature EOF
at sun.tools.attach.HotSpotVirtualMachine.readInt(HotSpotVirtualMachine.java:244)
at sun.tools.attach.LinuxVirtualMachine.execute(LinuxVirtualMachine.java:193)
at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:213)
at sun.tools.attach.HotSpotVirtualMachine.dumpHeap(HotSpotVirtualMachine.java:180)
at sun.tools.jmap.JMap.dump(JMap.java:241)
at sun.tools.jmap.JMap.main(JMap.java:140)
[root]#
Hinweis: Das Zielverzeichnis verfügt über mehr als 500 GB freien Speicherplatz
An catalina.out ausgegebener Fehler (JVM-Dump-Fehler):
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f0269cc41c6, pid=7806, tid=139647231129360
#
# JRE version: Java(TM) SE Runtime Environment (7.0_40-b43) (build 1.7.0_40-b43)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.0-b56 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V [libjvm.so+0x58c1c6] DumperSupport::dump_field_value(DumpWriter*, char, unsigned char*)+0x1c6
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /opt/tomcat6/bin/hs_err_pid7806.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp