Hi Jamie, On 04/25, Jamie Iles wrote: > > Hi Oleg, > > I'm back looking at SIGNAL_UNKILLABLE and debugging child reapers again, > and the current issue is when running code in the target process, > SIGTRAP firing and that causing SIGNAL_UNKILLABLE protection to be > removed in force_sig_info(): > > if (action->sa.sa_handler == SIG_DFL) > t->signal->flags &= ~SIGNAL_UNKILLABLE;
Yes, this is what I meant when I said force_sig_info() needs changes too. I was going to fix it "tomorrow" but I was distracted and then forgot. > @@ -1185,7 +1185,7 @@ force_sig_info(int sig, struct siginfo *info, struct > task_struct *t) > recalc_sigpending_and_wake(t); > } > } > - if (action->sa.sa_handler == SIG_DFL) > + if (action->sa.sa_handler == SIG_DFL && !t->ptrace) > t->signal->flags &= ~SIGNAL_UNKILLABLE; > ret = specific_send_sig_info(sig, info, t); > spin_unlock_irqrestore(&t->sighand->siglock, flags); Not sure, let me think a bit more... and this is not enough anyway. perhaps we should start with this simple change, but the "real" fix needs a lot of cleanups, although I am not sure if we will ever do this. Oleg.