Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1630827
| From | Jamie Iles <jamie.iles@oracle.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | SIGNAL_UNKILLABLE and init again |
| Date | 2017-04-25 19:40 +0200 |
| Message-ID | <tAcBs-7Ga-25@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
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
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
SIGNAL_UNKILLABLE and init again Jamie Iles <jamie.iles@oracle.com> - 2017-04-25 19:40 +0200
Re: SIGNAL_UNKILLABLE and init again Oleg Nesterov <oleg@redhat.com> - 2017-04-26 17:30 +0200
Re: SIGNAL_UNKILLABLE and init again Jamie Iles <jamie.iles@oracle.com> - 2017-04-27 14:20 +0200
csiph-web