Сбой JVM с G1 GC и библиотекой trove

У нас есть следующая проблема :На некоторых наших машинах с Linux приложения Java, которые используют библиотеку trove и G1 GC, довольно быстро аварийно завершают работу с сообщениями следующего типа:

A fatal error has been detected by the Java Runtime Environment:

 SIGSEGV (0xb) at pc=0x00002aaaaaef81d1, pid=31063, tid=1141000512

JRE version: 6.0_29-b11
Java VM: Java HotSpot(TM) 64-Bit Server VM (20.4-b02 mixed mode linux-amd64 )
Problematic frame:
J  gnu.trove.impl.hash.TObjectHash.insertKey(Ljava/lang/Object;)I

Что меня здесь поражает, так это проблематичный фрейм, который всегда один и тот же. Я привык к некоторым библиотекам, появляющимся здесь, но не к реальному Java-коду. Как ни странно, некоторые машины, которые должны иметь идентичную настройку, не затронуты. В Windows я тоже такого не встречал. Проблема сохраняется с последними версиями Java 7. Переключение с G1 GC на любой другой GC решает проблему немедленно. Мы используем библиотеку trove, разрешенную Maven, пробовали несколько версий, включая 3.0.3 -, всегда одна и та же проблема.

Кто-нибудь знает, что может быть причиной этого? Любая известная ошибка G1 GC? Компилируется ли trove особым образом, что может создать эту проблему?

Обновление :другое приложение, другой сервер, последняя версия Java (7u5 ), аналогичная проблема:

A fatal error has been detected by the Java Runtime Environment:

SIGSEGV (0xb) at pc=0x00002aadb7a38093, pid=14100, tid=46925573367184

JRE version: 7.0_05-b05
Java VM: Java HotSpot(TM) 64-Bit Server VM (23.1-b03 mixed mode linux-amd64 compressed oops)
Problematic frame:
J  gnu.trove.map.hash.THashMap.put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

Опять же, переключение на GC, отличный от G1, поможет. Оставьте G1, но избавьтесь от библиотеки Trove, и проблема тоже исчезнет. К сожалению, мне не удалось создать минимальный набор тестов, поэтому мне сложно составить разумный отчет об ошибке. Любые идеи о причине или любая идея, которая может помочь мне создать набор тестов?

9
задан malamut 31 July 2012 в 06:25
поделиться