Mutual debugging of 2 processes can stuck in unkillable stopped state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mutual debugging of 2 processes can stuck in unkillable stopped state

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, 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

I suppose that there should be some way to break the deadlocked debug. And the
system administrator must be able to terminate non-privileged processes.

Thank you.



[Index of Archives]     [Linux USB Development]     [Linux USB Development]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux