Потоковая дамп не генерируется при kill -3 - PullRequest
2 голосов
/ 05 марта 2012

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

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

Ответы [ 3 ]

2 голосов
/ 05 марта 2012

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

2 голосов
/ 05 марта 2012

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

0 голосов
/ 05 марта 2012

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

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

...