Garbage collector crash

Версия Minecraft
1.7.10
Всем привет.
В последнее время(2 недели назад) сервер начал нативно крашится, с переодичностью от пары дней до получаса.
Вылетает он с ошибкой SIGSEGV, что не очень то и говорит о том что не так.


Вот такие краши:
1560964419930.png
1560964652266.png1560964544914.png

и т.д.
Из крашей видно, что все они происходят при сборке мусора.
Как такое может быть? Я не использую сторонних нативных библиотек, не использую unsafe.

Перепробовал много версий джавы(по крашам можно понять).
Буду рад любой помощи.
 

Вложения

  • hs_err_pid6480-1.log.txt
    420.7 KB · Просмотры: 9
А никак нельзя найти, какие объекты он чистит?
 
Вот я об этом и думаю. Но это все равно очень странно, возможно это только запутает.

Я ведь использую только стандартные возможности языка, какой я бы объект не создал, гк по идеи должен его чистить и не крашится.
Эта же ошибка возникает и на windows, немного в другом виде(EXCEPTION_ACCESS_VIOLATION вместо SIGSEGV)

1561140211231.png
 
По чему проходится дебаггером? По коду? По сборщику мусора? По мусору? По куче?

Ошибка возникает в гк, притом непонятно когда, а не в коде. Дебаг кода ничего не даст
 
Может попробовать отсеять проблемную фичу за последние две недели? Может быть ты затащил какой-нибудь странный код за это время.

Лично из своего опыта могу сказать, что такой EXCEPTION_ACCESS_VIOLATION (см последний скрин) возникает, когда выходишь за пределы аллоцированной видеопамяти. Причем естественно эта вещь вылетает не сразу после выполнения операции на цпу, а когда-нибудь потом, поэтому отлаживать такое бывает проблематично.

Current thread (0x0000000002с17800): GCTaskThread показывает, что этот эксепшен вылетает в потоке сборщика мусора. Поэтому могу предположить, что ты пытаешься очищать вбошки, текстуры и т.п. в каком-нибудь finallize (что делать не стоит вообще).

А, падает сервер. Тогда не знаю.
 
Последнее редактирование:
Спасибо за предупреждениe, я и правда иногда что-то удаляю в finalize.

Но это да, сервер, и тут что-то другое. Нашел тему на jb форуме, там у человека тоже самое было. Решил он это через прописывние
-XX:-ReduceInitialCardMarks.
Правда это было еще на java 6 и там был баг.
regular EXCEPTION_ACCESS_VIOLATIONs in jvm.dll

Жаль, но это тоже не помогает.
Кроме поочередного удаления кусков кода, получается, вариантов нет?
Какой код вообще в теории может вызывать такой краш?
 
По чему проходится дебаггером? По коду? По сборщику мусора? По мусору? По куче?

Ошибка возникает в гк, притом непонятно когда, а не в коде. Дебаг кода ничего не даст
Так тебе никто и не говорит сразу тыкать дебаггером в код. Ты просто берешь, подключаешь приложение к нему и профайлишь, наблюдаешь за gc, кучей и прочим прочим прочим. Тут уж явное нежелание прибегать к инструментарию и сидеть гадать, а чож оно так то вот как то, а?
 
Откатываться до прежних версий не особо выйдет. Сервер может не крашится 10 часов, оч долго времени уйдет. Да и на локальном сервере ошибку воспроизвести не получается. А на основном откат все сломает.
 
Назад
Сверху