Потоковая дамп не генерируется при kill -3

Есть ли вероятность, что kill -3 / quit PID ничего не печатает, т.е. пустой дамп потока? Мы услышали историю от инженера службы поддержки и задались вопросом, могут ли некоторые эксперты подтвердить.

Это на Java 6_26 на RHEL 5

3 ответа

Решение

Я видел это только тогда, когда сервер перенаправляет на стандартный вывод, например, JBoss, а стандартный вывод перенаправляется на /dev/null, потому что, кто бы ни настраивал сервер, думал, что все, что идет на стандартный вывод, уже идет в именованный файл журнала.

Вывод на консоль дампа потока JVM на некоторых серверах перенаправляется в файл журнала. В случае Tomcat Server это обычно Catalina.out.

Я видел поведение, которое вы описываете в автономном приложении Java (Oracle JDK 1.6.20+, Linux), но я не могу сказать, как последовательно воспроизвести это поведение. Это могло быть после OutOfMemoryError в одной из тем, но я не уверен больше.

Я также думаю, что то, что я получил, было не просто пустым дампом, а тем, что команда фактически замерзла и не вернула меня в оболочку, пока я не нажал Ctrl+C после некоторого ожидания. В любом случае, я уверен, что поведение jstack был точно такой же, как kill -3, Когда это случилось, приложение было в такой плохой форме, что оно не реагировало на нормальное kill и только kill -9 работал над этим. Перенаправлений не было, и в обычных условиях приложение реагировало на kill -3 как это должно.

Другие вопросы по тегам