Frage

Meine Anwendung erlebt Cashes in der Produktion. Der Crash-Dump weist auf eine SIGSEGV hat in GCTaskThread aufgetreten

Es verwendet JNI, so könnte es einige Quelle für Speicherfehler sein, obwohl ich nicht sicher sein kann.

Wie kann ich dieses Problem debuggen - ich aber tun -XX:. OnError ... aber ich bin nicht sicher, was mir helfen wird, diese debuggen

Auch können einige von Ihnen ein konkretes Beispiel dafür, wie JNI Code GC mit SIGSEGV abstürzen kann

Bearbeiten :

OS: SUSE Linux Enterprise Server 10 (x86_64)

vm_info: Java HotSpot (TM) 64-Bit Server VM (11.0-b15) für Linux-amd64 JRE (1.6.0_10-b33), gebaut auf 26. September 2008 01.10.29 von "java_re" mit gcc 3.2 0,2 (SuSE Linux)

Bearbeiten : Der Ausgabestopp auftritt, nachdem wir den Hyper-Threading, irgendwelche Gedanken zu deaktivieren?

War es hilfreich?

Lösung

Fehler in der JNI-Code kann auf verschiedene Arten erfolgen:

The program crashes during execution of a native method (most common).
The program crashes some time after returning from the native method, often during GC (not so common).
Bad JNI code causes deadlocks shortly after returning from a native method (occasional).

Wenn Sie denken, dass Sie ein Problem mit der Interaktion zwischen Benutzer geschriebenen nativen Code haben und die JVM (die ein JNI Problem ist), können Sie Diagnose durchführen, dass Sie helfen, die JNI Übergänge überprüfen. diese Diagnose zu berufen; geben Sie den -Xcheck. jni Option, wenn Sie die JVM starten

Die -Xcheck: jni Option aktiviert eine Reihe von Wrapper-Funktionen rund um die JNI-Funktionen. Die Wrapper-Funktionen ausführen Kontrolle der eingehenden Parameter. Diese Prüfungen umfassen:

Whether the call and the call that initialized JNI are on the same thread.
Whether the object parameters are valid objects.
Whether local or global references refer to valid objects.
Whether the type of a field matches the Get<Type>Field or Set<Type>Field call.
Whether static and nonstatic field IDs are valid.
Whether strings are valid and non-null.
Whether array elements are non-null.
The types on array elements.

Pls las die folgenden Links http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/index.jsp?topic=/com.ibm.java.doc.diagnostics.50/html/jni_debug.html http://www.oracle.com/technetwork/java/javase/clopts-139448.html#gbmtq

Andere Tipps

Mit valgrind. Das klingt wie ein Speicherfehler. Die Ausgabe wird ausführlich angegeben, sondern versucht, den Bericht an die JNI-Bibliothek Wenn es möglich zu isolieren.

Da der fehlerhafte Faden GCTaskThread zu sein scheint, haben sie versucht, ermöglicht verbose:gc und Analysieren der Ausgabe (vorzugsweise mit einem grafischen Tool wie Samurai, etc.)? Sind Sie in der Lage eine bestimmte lib nach Prüfung der hs_err Datei zu isolieren?

Sie können aber auch bitte weitere Informationen über das, was das Problem verursacht, und wenn es leicht reproduzierbar ist?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top