2015-03-26 6 views
0

Я принимаю участие в разработке приложения Grails. Он работал нормально, но когда я начал его сегодня утром, происходит следующее: при вызове определенной страницы сервер перестает работать. Он не отвечает, в журналах log4j нет ничего, и после этого все остальные страницы недоступны. Далее (насколько я знаю) мы используем kickstart plugin - эти имена продолжают появляться в журналах (как если бы каждый из них выполнял скрипт каждый раз), но уже не после указанного вызова страницы.Как отлаживать неответное приложение Grails?

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

Я в затруднении относительно того, что теперь делать. Я проверил онлайн для подсказок, но не нашел ни одного. Как мне отладить эту ошибку? С чего начать? Где я должен искать информацию?

Поскольку это ветвь в разработке приложения, она в настоящее время находится на моем локальном хосте (выполняется гралив на машине Windows), и я могу выполнять любые действия на нем. В IDE у меня есть Eclipse с плагином Grails, поэтому я могу отлаживать.

ответ

1

Обычно нет простого решения. Во-первых, вам нужно выяснить, почему виртуальная виртуальная машина Java висит. Следуйте инструкциям в этом документе: http://www.oracle.com/technetwork/java/javase/hangloop-140257.html

Когда вы выяснили причину, по которой оно висит, вернитесь сюда, если вам нужны идеи, как решить проблему.

+0

Спасибо за предложение @Aaron Digulla - следуя главе 5.1. Я нашел pid (на окнах) с 'netstat -a -n -o | найдите «8080» ', а затем используйте это для извлечения потока стека с помощью' jstack -F '- перед тем, как перейти к указанной странице, jstack дал мне результат с« Не обнаружено тупиков ». и множество потоков, все из которых находятся в состоянии «состояние = БЛОКИРОВКА» или «state = IN_NATIVE». ПОСЛЕ доступа к jstack страницы выдает сообщение об ошибке «Ошибка при подключении к процессу: Ошибка Windbg: Ошибка WaitForEvent!» и netstat не обнаружил, что процесс больше не прослушивается на порту 8080. Не знаю, куда он пошел. – HumanInDisguise

+0

@HumanInDisguise: Это означает, что процесс умер. Попробуйте запустить его из окна консоли, чтобы увидеть его вывод и/или просмотреть любые файлы журналов, которые создает процесс/приложение и ищет ошибки. –

+0

Спасибо за предложения @Aaron Digulla. Я закончил установку [Инструменты отладки Windows] (https://msdn.microsoft.com/en-us/library/windows/hardware/ff551063%28v=vs.85%29. aspx), но привязывая это к процессу, чтобы увидеть, что он сделал, когда он разбился, фактически удерживал его на неопределенный срок от сбоя (пока не доставлял никакого выхода); когда я остановил отладчик, процесс разбился. В конце концов, проблема перестала появляться, когда мы реструктурировали приложение. На странице отображается много данных. Теперь мы разрешаем отображать только несколько строк данных и оставляем задержку остатка через javascript. – HumanInDisguise

Смежные вопросы