无意中我发现一个Java进程的统计信息是T(通过作业控制信号或因为它被跟踪而停止)。我认为它可能与jinfo
有关,因为那时我运行了这个命令。然后我尝试再次运行jinfo
并且该过程崩溃了agagin。但重现起来并不容易。
有没有人知道为什么进程统计在没有kill -SIGSTOP
的情况下成为T? jinfo
是否有可能导致进程崩溃的错误?
编辑:当jinfo
过程超过60天时,我100%重现了此问题。如果进程运行了很长时间,似乎会触发该错误。它不适用于新流程。
OMG,jmap
有同样的问题,也是100%转载。但不适用于jstack
。现在我很确定它是关于检测jvm的东西。
$ java -version
java版“1.6.0_37”
Java(TM)SE运行时环境(版本1.6.0_37-b06)
Java HotSpot(TM)64位服务器VM(版本20.12-b01,混合模式)
答案 0 :(得分:0)
它是JDK 1.6.0或内核2.6.32的ptrace的错误。我将测试不同的版本。