Вопрос

Мое приложение переживает наличными в производстве. Падальщик указывает, что SIGSEGV произошел в GCTaskThTread

Он использует JNI, так что может быть какой-то источник коррупции памяти, хотя я не могу быть уверен.

Как я могу отладить эту проблему - я хоть с помощью -xx: OneRor ... но я не уверен, что поможет мне отладить это.

Кроме того, некоторые из вас могут дать конкретный пример на то, как код JNI может сбиваться GC с Sigsegv

РЕДАКТИРОВАТЬ:

ОС: SUSE Linux Enterprise Server 10 (x86_64)

VM_INFO: Java Hotspot (TM) 64-битный сервер VM (11.0-B15) для Linux-AMD64 JRE (1.6.0_10-B33), построенный на 26 сентября 2008 г. 01:10:29 на «Java_re» с GCC 3.2.2 ( SUSE LINUX)

РЕДАКТИРОВАТЬ: Останавливается вопрос, возникающая после того, как мы отключаем гипер резьбу, любые мысли?

Это было полезно?

Решение

Ошибки в коде JNI могут возникать несколько способов:

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).

Если вы думаете, что у вас возникнут проблема с взаимодействием пользовательского нативного кода и JVM (то есть проблема JNI), вы можете запустить диагностику, которая поможет вам проверить переходы JNI. вызвать эту диагностику; Укажите опцию -xcheck: JNI, когда вы запускаете JVM.

Опция -xCheck: JNI Apply активирует набор функций обертки вокруг функций JNI. Функции обертки выполняют проверки входящих параметров. Эти проверки включают в себя:

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.

Пожалуйста, прочитайте следующие ссылкиhttp://publib.boulder.ibm.com/infocenter/javasdk/v5r0/index.jsp?topic=/com.ibm.java.doc.diagnostics.50/html/jni_debug.html.http://www.orcle.com/technetwork/java/javase/Clopts-139448.html#gbmtq.

Другие советы

Используйте Валгринд. Это звучит как повреждение памяти. Вывод будет многословным, но попытаться изолировать отчет в библиотеку JNI, если это возможно.

Поскольку неисправная нить кажется GCTaskThread, вы пытались включить verbose:gc и анализ вывода (желательно с использованием графического инструмента, такого как Samurai и т. Д.)? Вы можете изолировать конкретный lib после изучения файла hs_err?

Кроме того, можете ли вы предоставить больше информации о том, что вызывает проблему, и если она легко воспроизводится?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top