public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* SIGNAL_UNKILLABLE and init again
@ 2017-04-25 17:39 Jamie Iles
  2017-04-26 15:18 ` Oleg Nesterov
  0 siblings, 1 reply; 5+ messages in thread
From: Jamie Iles @ 2017-04-25 17:39 UTC (permalink / raw)
  To: Oleg Nesterov, linux-kernel

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;

Would relaxing that if the task is being traced with something like

  diff --git i/kernel/signal.c w/kernel/signal.c
  index 7e59ebc2c25e..f701f1889895 100644
  --- i/kernel/signal.c
  +++ w/kernel/signal.c
  @@ -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);

make any sense?  It does address the issue that I'm seeing, but are 
there any downsides to doing so?

Thanks,

Jamie

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-08-14 16:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-25 17:39 SIGNAL_UNKILLABLE and init again Jamie Iles
2017-04-26 15:18 ` Oleg Nesterov
2017-04-27 12:16   ` Jamie Iles
2017-08-14  9:31     ` Jamie Iles
2017-08-14 16:24       ` Oleg Nesterov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox