On 03/29, Igor Zhbanov wrote: > > Mutual debugging of 2 processes can stuck in unkillable stopped state can't reproduce and can't understand... > Hi! > > When one process, let's say "A", is tracing the another process "B", and the > process "B" is trying to attach to the process "A", then both of them are > getting stuck in the "t+" state. And they are ignoring all of the signals > including the SIGKILL, Why do you think so? What is your kernel version? "t" means TASK_TRACED, SIGKILL should wake it up and terminate. > so it is not possible to terminate them without > a reboot. > > To reproduce: > 1) Run two terminals > 2) Attach with "strace -p ..." from the first terminal to the shell (bash) of > the second terminal. > 3) In the second terminal run "exec strace -p ..." to attach to the PID of the > first strace. > > Then you'll see that the second strace is hanging without any output. And the > first strace will output following and hang too: > ptrace(PTRACE_SEIZE, 11795, NULL, > PTRACE_O_TRACESYSGOOD|PTRACE_O_TRACEEXEC|PTRACE_O_TRACEEXIT > > (The 11795 is the PID of the first strace itself.) > > And in the process list you will see following: > ps awux | grep strace > user 11776 0.0 0.0 24752 2248 pts/3 t+ 13:53 0:00 strace -p 11795 > user 11795 0.0 0.0 24752 3888 pts/1 t+ 13:54 0:00 strace -p 11776 OK, may be they sleep in PTRACE_EVENT_EXIT? After you tried to send SIGKILL? please show us the output from "cat /proc/{11795,11776}/stack". And "cat /proc/{11795,11776}/status" just in case. Oleg.