From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752709AbdHNJbd (ORCPT ); Mon, 14 Aug 2017 05:31:33 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:26904 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751592AbdHNJbc (ORCPT ); Mon, 14 Aug 2017 05:31:32 -0400 Date: Mon, 14 Aug 2017 10:31:24 +0100 From: Jamie Iles To: Oleg Nesterov Cc: linux-kernel@vger.kernel.org Subject: Re: SIGNAL_UNKILLABLE and init again Message-ID: <20170814093124.vvpa6e7ntcukghub@cedar> References: <20170425173928.gaubfmxxbbvglnio@cedar> <20170426151857.GA11894@redhat.com> <20170427121651.wrjgb4juhfyobbpw@cedar> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170427121651.wrjgb4juhfyobbpw@cedar> User-Agent: NeoMutt/20170113 (1.7.2) X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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