Hallo Leute
Wir haben hier ein SLES 9 SP3 64Bit im Einsatz.
cat /proc/version
Linux version 2.6.5-7.312-smp (geeko@buildhost) (gcc version 3.3.3 (SUSE Linux)) -1 SMP Fri Jun 6 12:44:33 UTC 2008
(jaja - ist schon etwas älter)
Darauf läuft eine relativ komplexe Java-Anwendung. Verwendet wird eine relativ aktuelle Java-VM
java -version
java version „1.6.0_27“
Java™ SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot™ 64-Bit Sever VM (build 20.2-b06, mixed mode)
Hin und wieder wird der Prozess offenbar vom Kernel zwangsbeendet.
dmesg
java[20264] bad frame in signal deliver frame:
java[20264]: segfault at error 6
Laut Suche im INet dürfte das Problem mit fehlerhaften Daten am Stack des Programms zusammenhängen. Vermutlich also eine Fehler der VM selbst.
Der Kernel hat auch einen core-dump geschrieben. Liegt im aktuellen Arbeitsverzeichnis des Prozesses und hat den Namen „core.11448“. Mich wundert, dass die Nummer eine andere ist als in der Kernel-Fehlermeldung, aber Meldung und Datei passen vom Datum/Uhrzeit her genau zusammen. Die Datei selbst ist ca. 4 GB gross.
Frage: kann ich mit diesem core-dump irgendwas sinnvolles anstellen? Soweit ich mich auskenne, ist die Datei ein Speicherabbild des Prozesses zum Zeitpunkt des Fehlers. Hilft mir aber nicht wirklich was weiter. Gibt es irgendeine Chance, das Problem wenigstens annähern einzugrenzen?
Die Java-Anwendung selbst ist eine reichlich komplexe Serveranwendung, mit der ein paar hundert Benutzer gleichzeitig arbeiten. Es ist eine proprietäre RMI-Anwendung und kein klassischer Applicationserver (also kein tomcat, jboss oder ähnliches). Die Logfiles der Java-Anwendung geben nichts her - es kam keine Java-Fehlermeldung, keine Stacktraces oder ähnliches. Es gibt auch keine Auffälligkeiten im Logfile des Garbage Collectors.
Danke schon mal für Hinweise
lg
Erwin