Java VM: reproduzierbare SIGSEGV auf beiden 1.6.0_17 und 1.6.0_18, wie zu berichten?

BEARBEITEN: Diese reproduzierbare SIGSEGV geschieht auf einem Linux-Rechner mit mehr als einem proc und mehr als 2GB mem, also Java ist standardmäßig auf den -server-Modus. Interessanterweise genug, wenn ich Gewalt "-client" es gibt keinen Absturz mehr... (ich bin noch nicht sicher, was zu tun mit meinem reproduzierbare SIGSEGV aber es ist trotzdem interessant).

Ersten Hinweis, dass dies ein bisschen verwandt, aber nicht identisch mit dem folgenden, denn in unserem Fall ist es nur ein SIGSEGV das passiert, ist zuverlässig und wir können es auslösen:

JVM OutOfMemory-Fehler "Todesspirale" (nicht memory-leak)

Ist es ähnlich, da es passiert, wenn wir füttern Sie unsere app mit einer "Flut von Daten": Daten aus text-Dateien und dann die Zahl-gecrashtes (ja -, Finanz-Zahl Knirschen in Java).

Kann ich zuverlässig auslösen, eine JVM zu SIGSEGV nur mit Gültiger Java-code.

HINWEIS: ich kann immer ein Absturz die beiden JVM 1.6.0_17 adn JVM 1.6.0_18 und diese Frage ist nicht etwa, wie man dieses Problem lösen (zum Beispiel das spielen mit dem VM Parameter kann das Problem zu beheben aber ich bin mir nicht danach, ich will wissen, was mit diesem zu tun immer reproduzierbar SIGSEGV).

Ich habe eine Problemumgehung, die Sie einfach besteht in der Verwendung von Java 1.5 bei der Markteinführung unserer app (während immer noch mit Java 1.6 ausführen, IntelliJ IDEA, etc.. auf der gleichen Maschine gleichzeitig), aber meine Frage ist, ob dies gemeldet werden sollte oder nicht und, wenn es sein sollte, so melden Sie es wissen, dass das Protokoll selbst enthält urheberrechtlich geschützte Informationen (die vollständige hs_err_..._log).

Hardware-Fehler ausgeschlossen werden können:

  • dies passiert auf einer workstation, die regelmäßig erreicht Monaten uptime (die ich nur neu starten, wenn kritische Sicherheits-patches Auswirkungen auf meine abgespeckte und gehärteten Debian-Linux ausgegeben werden, was wirklich nicht oft geschieht) und auf die Anwendungen nie abstürzt (das macht es sehr unwahrscheinlich, dass es ein hardware-Problem auf, dass die Maschine [mehr dazu unten])
  • gleichen Anwendung funktioniert perfekt auf diesem Rechner unter einer JVM 1.5 unter der gleichen Last (dies ist, wie Teste ich die app: ich einfach starten Sie es unter eine 1.5 VM)
  • gleichen Anwendung funktioniert einwandfrei auf mehr als ein hundert clients Maschine unter den gleichen (riesigen) laden (noch nie abgestürzt, einmal auf Windows + JVM 1.5 oder 1.6 und noch nie abgestürzt, einmal auf OS X + JVM 1.5 oder 1.6 [ein Absturz würde bedeuten, eine sofortige Anruf von der client -])
  • anderen Anwendung auf der gleichen Maschine und gleichen 1.6.0_17 oder JVM 1.6.0_18 niemals zum Absturz bringen (zum Beispiel habe ich zwei Instanzen von IntelliJ IDEA zu laufen, wie zwei unterschiedliche Benutzer auf die gleiche Maschine und Sie nicht Abstürzen)
  • Maschine ist getestet mit memtest "regelmäßig" (vor der Installation eines neuen OS, mit dem letzten passiert ist, wenn ich installiert Debian Lenny nicht so lang her)

Hier ist die reproduzierbare-on-demand-SIGSEGV:

... $uname -a
Linux saturn 2.6.26-2-686 #1 SMP Wed Nov 4 20:45:37 UTC 2009 i686 GNU/Linux
... $ export /home/wizard/jdk1.6.0_17/bin:$PATH
... $ java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Server VM (build 14.3-b01, mixed mode)

Starten Sie die app, führen Sie eine "Flut von Daten", ein paar Sekunden warten...

Dann immer, für 1.6.0_17:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xb76d0080, pid=30793, tid=2514328464
#
# JRE version: 6.0_17-b04
# Java VM: Java HotSpot(TM) Server VM (14.3-b01 mixed mode linux-x86 )
# Problematic frame:
# V  [libjvm.so+0x4bc080]
#
# An error report file with more information is saved as:
# /home/wizard/hs_err_pid30793.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp

(beachten Sie, dass die Zeile " [libjvm.also+0x4bc080] " ist konsequent für 1.6.0_17 bei jedem SIGSEGV)

oder für 1.6.0_18:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xb77468f0, pid=722, tid=2514516880
#
# JRE version: 6.0_18-b07
# Java VM: Java HotSpot(TM) Server VM (16.0-b13 mixed mode linux-x86 )
# Problematic frame:
# V  [libjvm.so+0x4d88f0]
#
# An error report file with more information is saved as:
# /home/wizard/hs_err_pid722.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
Aborted

(beachten Sie, dass die Zeile "[libjvm.also+0x4d88f0]" ist konsequent für 1.6.0_18 bei jedem SIGSEGV)

Das problem ist, dass die log-Datei enthält proprietäre Informationen
das kann nicht geteilt werden.

Reproduktion eines "kleinen test case", dass das Problem reproduzieren, ist nicht realistisch, entweder: es ist so ähnlich wie die Frage oben verlinkten, dies geschieht nur, wenn eine "Flut von Daten" gefüttert, um die app.

Beachten Sie, dass die genau die gleiche Anwendung, auf genau der gleichen hardware, mit genau der gleichen JVM-aber eine andere version von Linux (hatte ich Debian Etch bisher) NICHT ausgelöst hat, dass SIGSEGV einmal.

Aber das bedeutet nicht, dass die JVM ist nicht Schuld: es könnte immer noch eine JVM-Problem.

Sollte ich das melden und wie? (halten Sie im Verstand, dass das schreiben eine "reproduzierbare kleinen test case" ist wahnhafte und dass das Protokoll enthält proprietäre Informationen, die nicht zugespielt werden). Sollte ich einfach Bearbeiten Sie das Protokoll und schicken Sie es?

Was ist das Verfahren für die Meldung solcher reproduzierbare SIGSEGV, wenn dein log enthält proprietäre Informationen, und wenn ein Testfall zu reproduzieren, das Problem ist nicht realistisch machbar?

Hat einer von Euch Erfolg haben, öffnen so ein Fehler und dann sehen Sie es gelöst in einer späteren Java-Version?

Glaubst du, es ist gut "für die Java-community" zu melden so ein Problem, oder ich darf nur nicht die Mühe, weil es nicht wichtig ist?

Tut dies, gelten noch immer mit der neuesten version von Java? Berücksichtigen Sie auch die Verwendung der IBM Java oder JRocket.
Ravn Andersen: ich werde prüfen, später und heute Abend hier berichten
Ravn Andersen: Gerade heruntergeladene JRE-version: 6.0_25-b06. Genau die gleiche Absturz :-/
Und IBM Java?..
Auch, geschieht dies auf einer der offiziell unterstützten Linux-Plattformen?

InformationsquelleAutor SyntaxT3rr0r | 2010-02-19

Schreibe einen Kommentar