2013-09-14 2 views
3

Что-то в моем коде или в драгоценных камнях, которые я использую, это утечка ссылки на среду выполнения JRuby: каждый раз, когда я перезагружаю приложение на Torquebox, Trinidad или что-то еще, перджен просто заполняется до тех пор, пока в конце после слишком много перезагрузок я получаю ошибку PermGen OOM.Утечка ссылки на jruby runtime, получение ошибок PermMen OOM после перезагрузки приложения

Как я могу узнать, что вызывает это? Какие вещи я ищу? Я использую JRuby 1.7.3, так что не должно быть проблемой с самого JRuby ...

+0

На этот вопрос нет ответа? –

+0

К сожалению - это распространенная проблема в Java ... Я бы начал проверять, поддерживает ли JVM поддержку разгрузочных классов или, наоборот, использует настройку GC, которая позволяет прокручивать http://stackoverflow.com/questions/3334911/what- делает-JVM-флаг-cmsclassunloadingenabled-на самом деле-до – kares

ответ

0

это, вероятно, ближе всего вы получите с Hotspot убедившись, что он очищает PermGen память:

JAVA_OPTS =» -server -XX: + UseConcMarkSweepGC -XX: + CMSClassUnloadingEnabled -XX: + UseCodeCacheFlushing ...»

... конечно не поможет, если есть негерметичных ссылка сдерживая классы от того, GC-d