2

偶然我发现一个 Java 进程的状态是 T(已停止,要么是通过作业控制信号,要么是因为它正在被跟踪)。我认为这可能与jinfo我当时运行此命令有关。然后我尝试jinfo再次运行,该过程再次崩溃。但这并不容易重现。

有谁知道为什么 process 的 stat 变成了 T without kill -SIGSTOP?是否jinfo有可能导致进程崩溃的错误?

jinfo编辑:当流程运行超过 60 天时,我 100% 重现了这个问题。如果进程运行了很长时间,似乎会触发该错误。它不适用于新流程。

OMG,jmap有同样的问题,它也是 100% 复制的。但不是为了jstack。现在我很确定这是关于检测 jvm 的。

$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01,混合模式)

4

1 回答 1

0

这是 JDK 1.6.0 或内核 2.6.32 的 ptrace 的错误。我会测试不同的版本。

于 2014-09-08T06:12:55.240 回答