【发布时间】:2017-11-04 07:58:22
【问题描述】:
我正在尝试调试挂起的 java 进程。它对 jstats、jmap 等大多数 JDK 工具没有响应。
这是 strace 的输出:
$ sudo strace -p <pid>
futex(0x7f14bb42a9d0, FUTEX_WAIT, 6090, NULL <unfinished ...>
wchan 的输出:
$ sudo cat /proc/<pid>/wchan
futex_wait_queue_me%
$sudo strace -f -p <pid>
Process <pid> attached with 15 threads - interrupt to quit
[pid 6105] futex(0x7f14b40cb954, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...>
[pid 6102] futex(0x7f14ba81e860, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid 6101] futex(0x7f14b408aa54, FUTEX_WAIT_PRIVATE, 43, NULL <unfinished ...>
[pid 6100] futex(0x7f14b4085f54, FUTEX_WAIT_PRIVATE, 43, NULL <unfinished ...>
[pid 6074] futex(0x7f14bb42a9d0, FUTEX_WAIT, 6090, NULL
有关流程的其他重要信息:
- 它在 cgexec 下运行。
需要有关如何找到此进程挂起问题的根本原因的指针。
【问题讨论】:
-
strace -f -p
显示什么? -
@exussum 更新问题,输出 strace -f -p