#grails
Вопрос:
Однажды catalina.out
в моем приложении Tomcat занимал почти 4 ГБ Grails 4.0.10
, используя представления gsp. При осмотре выяснилось, что в течение чуть менее 9 минут было 279 Unable to render errors view
бесконечных циклов исключений, один раз в 2 секунды, каждый из которых приводил к a java.lang.StackOverflowError
. Каждая трассировка стека содержала около 130.000 строк.
Ни один из моих собственных классов не появился в трассировках стека. В приложении есть error.gsp
представление, которое проверяется.
Приложение находится за nginx. Я не нашел ничего особенного в журналах доступа nginx или Tomcat.
В растерянности по этому поводу. Есть какие-нибудь советы?
ИЗМЕНИТЬ: Я включил вход в систему отладки GrailsExceptionResolver
после изучения ее источника и подсказок из трассировки стека. Надеюсь, будет больше информации, когда/если эта проблема появится снова.
Комментарии:
1. Нечто подобное случилось со мной. В каком файле журнала была трассировка стека?
localhost.${date}.log
,yourGrailsApp.log
илиcatalina.out
2. «В растерянности по этому поводу. Любой совет?»- Существует бесконечное количество вещей, которые могут вызвать переполнение стека во время визуализации представления. Многие из них будут иметь отношение к тому, как написано представление и что оно делает, и это также может быть ошибкой в фреймворке. Если вы сможете воспроизвести поведение в общедоступном приложении, это облегчит устранение неполадок.
3. Да, на этот вопрос несколько невозможно ответить, особенно в дождливый день. Из отсутствия советов я заключаю, что моя проблема-это не то, с чем сталкивались другие люди.