1 |
On Wednesday 18 of February 2009 14:35:06 Mike Kazantsev wrote: |
2 |
>Может банально кусок проверяемой системы не работает, например, |
3 |
>с какой-нибудь сетевой или кластерной FS? |
4 |
> |
5 |
>Думаю, полезно будет посмотреть что в это время процесс (и его |
6 |
>дети, см. pstree) делают - "strace -p PID". |
7 |
|
8 |
Запуск strace -p PID обрывается на строках: |
9 |
>rt_sigprocmask(SIG_BLOCK, [INT CHLD], [CHLD], 8) = 0 |
10 |
>rt_sigprocmask(SIG_BLOCK, [CHLD], [INT CHLD], 8) = 0 |
11 |
>rt_sigprocmask(SIG_SETMASK, [INT CHLD], NULL, 8) = 0 |
12 |
>clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, |
13 |
> child_tidptr=0x53ba2708) = 20019 rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, |
14 |
> 8) = 0 |
15 |
>close(4) = 0 |
16 |
>close(4) = -1 EBADF (Bad file descriptor) |
17 |
>rt_sigprocmask(SIG_BLOCK, [INT CHLD], [CHLD], 8) = 0 |
18 |
>clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, |
19 |
> child_tidptr=0x53ba2708) = 20020 rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, |
20 |
> 8) = 0 |
21 |
>close(3) = 0 |
22 |
>rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0 |
23 |
>rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0 |
24 |
>rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0 |
25 |
>rt_sigaction(SIGINT, {0x11d20ee0, [], 0}, {0x11d3637c, [], 0}, 8) = 0 |
26 |
>waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 20019 |
27 |
>waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0) = 20020 |
28 |
>rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0 |
29 |
>rt_sigaction(SIGINT, {0x11d3637c, [], 0}, {0x11d20ee0, [], 0}, 8) = 0 |
30 |
>close(3) = -1 EBADF (Bad file descriptor) |
31 |
>rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 |
32 |
>--- SIGCHLD (Child exited) @ 0 (0) --- |
33 |
>waitpid(-1, 0x5da594ec, WNOHANG) = -1 ECHILD (No child processes) |
34 |
>sigreturn() = ? (mask now []) |
35 |
>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 |
36 |
>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 |
37 |
>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 |
38 |
>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 |
39 |
>rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 |
40 |
>rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 |
41 |
>rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 |
42 |
>pipe([3, 4]) = 0 |
43 |
>rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 |
44 |
>rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 |
45 |
>rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0 |
46 |
>clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, |
47 |
> child_tidptr=0x53ba2708) = 20021 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = |
48 |
> 0 |
49 |
>rt_sigaction(SIGCHLD, {0x11d22a4a, [], 0}, {0x11d22a4a, [], 0}, 8) = 0 |
50 |
>close(4) = 0 |
51 |
>read(3, |
52 |
|
53 |
Команда pstree рисует вот такую структуру. |
54 |
|
55 |
├─rsync(2671) |
56 |
├─screen(7768)───bash(7769)───revdep-rebuild(19521)───revdep-rebuild(20021)─┬─ldd(20022)─┬─cat(20027) |
57 |
│ │ └─ldd(20025)───getstack2(20026) |
58 |
│ └─sort(20023) |
59 |
├─sshd(2542)───sshd(13721)───sshd(13726)───bash(13727)───su(13731)───bash(13732)───pstree(20043) |
60 |
├─udevd(11640) |
61 |
└─vsftpd(2699) |
62 |
|
63 |
А если посмотреть ТОР, то можно увидеть: |
64 |
|
65 |
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND |
66 |
20026 root 39 19 280 32 12 R 99.5 0.0 6:57.10 getstack2 |
67 |
1 root 20 0 1736 924 888 S 0.0 0.2 0:05.88 init |
68 |
2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd |
69 |
3 root 15 -5 0 0 0 S 0.0 0.0 0:05.56 ksoftirqd/0 |
70 |
4 root 15 -5 0 0 0 S 0.0 0.0 0:13.02 events/0 |
71 |
5 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 khelper |
72 |
76 root 15 -5 0 0 0 S 0.0 0.0 0:09.54 kblockd/0 |
73 |
78 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid |
74 |
79 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kacpi_notify |
75 |
137 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 ksuspend_usbd |
76 |
142 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 khubd |
77 |
|
78 |
т.е. я так понимаю, проблема в getstack2. Но что это такое и где ее искать я не знаю... Есть еще идеи?! |