Случайно я обнаружил, что стат одного Java-процесса - T (Остановлен либо сигналом управления заданием, либо потому, что он прослеживается). Я думаю, что это может быть связано с jinfo
, потому что я запустил эту команду в то время. Затем я снова пытаюсь запустить jinfo
, и процесс разбил агагин. Но это непросто воспроизвести.jinfo случайно разбил JVM
У кого-нибудь есть идея, почему стат процесса стал T без kill -SIGSTOP
? У jinfo
есть ошибка, которая может привести к сбою процесса?
EDIT: У меня есть 100% проблема с воспроизведением, когда jinfo
процесс длился более 60 дней. Кажется, что ошибка вызвана, если процесс длится долго. Это не работает для новых процессов.
OMG, jmap
имеет такую же проблему, и она также воспроизводится на 100%. Но не для jstack
. Теперь я уверен, что это что-то об обнаружении jvm.
$ Java -версия
Java версия "1.6.0_37"
Java (TM) SE Runtime Environment (сборка 1.6.0_37-b06)
Java HotSpot (TM) 64-разрядный сервер VM (сборка 20.12-b01, смешанный режим)
Просьба пояснить, что вы имеете в виду под «крушением». Описан ли процесс аномально или он просто приостанавливается? Когда это происходит? После запуска 'jinfo'? Какая именно команда? Как часто это происходит? В этом случае ничего не отображается в jinfo? – apangin
Спасибо @apangin за ответ. В первый раз процесс Java приостанавливается, а не откликается на какой-либо запрос, но процесс существует, а stat - T. В следующий раз я запустил 'jinfo', из-за чего процесс завершился. С тех пор это произошло два раза. Я просто запускал 'jinfo' без каких-либо параметров, например' jinfo 23943'. Вывод 'jinfo' является нормальным, но иногда он разбивает процесс. – tobe
ОК. Какая версия JDK используется? Вы запускаете 'jinfo' и' jmap' из того же JDK, на котором работает ваше целевое приложение? – apangin