[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170814093124.vvpa6e7ntcukghub@cedar>
Date: Mon, 14 Aug 2017 10:31:24 +0100
From: Jamie Iles <jamie.iles@...cle.com>
To: Oleg Nesterov <oleg@...hat.com>
Cc: linux-kernel@...r.kernel.org
Subject: Re: SIGNAL_UNKILLABLE and init again
Hi Oleg,
On Thu, Apr 27, 2017 at 01:16:51PM +0100, Jamie Iles wrote:
> On Wed, Apr 26, 2017 at 05:18:58PM +0200, Oleg Nesterov wrote:
> > 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.
>
> Okay, sounds good. I'm happy to spend more time looking at this if you
> have suggestions - in the context of namespaces and containers this
> seems more relevant than when it was just the system init that we were
> protecting.
Any objections to moving ahead with this patch?
Thanks,
Jamie
Powered by blists - more mailing lists