Re: Mutual debugging of 2 processes can stuck in unkillable stopped state
From: Oleg Nesterov
Date: Tue Apr 13 2021 - 13:17:57 EST
Hi Igor,
sorry for delay...
On 04/12, Igor Zhbanov wrote:
>
> Hi Oleg,
>
> So what is the cause of this problem?
The cause is clear. And well known ;) And again, this has almost nothing to do
with the mutual debugging.
The tracee sleeps in ptrace_stop(). You send SIGKILL. This wakes the tracee up,
it dequeues the signal, calls do_exit(), and stops again in PTRACE_EVENT_EXIT.
With SIGKILL in signal->shared_pending. This all looks as if the tracee doesn't
react to SIGKILL.
The only problem is that any change can break something which relies on the
current behaviour :/ I'll write another email on this.
Oleg.