Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp120182imj; Fri, 8 Feb 2019 16:18:24 -0800 (PST) X-Google-Smtp-Source: AHgI3Ibg282H4xeotJ953zRAc2O/ptoCeftkgl8axeosJBnxBnntAGHdWesqL35LUqcW4mhXzvY8 X-Received: by 2002:a62:5fc4:: with SMTP id t187mr25332354pfb.66.1549671504588; Fri, 08 Feb 2019 16:18:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549671504; cv=none; d=google.com; s=arc-20160816; b=esJeDJQgCq6B6ixKpOQxUpRSocgOe/mGkxjDSjjTsvg6ikVsjTli3322RYnn5TqJvd q+4jPv8gxD1mTAUpa/EAWhw6YyOryNE4g/Hj+QRyo8+F0yFkOjiBHQtzr9EI/2A7g1WR UpsSqdrMIFAQTBzQ0nE3PrhKZNyZwP/33908h9FV/ePhfpXJDKAEKybUeNMsq6a6+kO8 q+MmeS/56xEW+b2TD3Yx5lOy7nRbjg78oL7EHKB/64HC7tmhKSC+HBvAgMjKcXRaBhP3 kgB34FCp7V9R1ySLakzBrYizWWmlbuNsDgjJG4P6LXX4/dUXpIrc4IhIswcPabkCnS// UO7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=R7LyMcPXHlOVl1UD0M9CSASLtyZS2/6CtFGEODaNu1s=; b=KFufRemt0/54ZSR4BtgP5DZ6Tt+i5S+7IOKCtp9RJhZoCt6aSAU8oXW4IbhqoDimAZ YQsvz7ZvO5NOyaWnuNCV8PsnMNDZzC2FojSt1esDo4LeK3KRhZK5PORI2D6Y7WnbQ1lV ZNp3twinYeBXfU6SY9e8MhUDAPBKGLH2GYUhcCMzcH6345+B+bvNcjcGXNvCZcsu9+ke 8ov1+EX7g/Dww8o8t31N2ZO6cQwDWC/4RR4Elw7BT9eLmi+kxaMxr3QlH/jqUwkwOG3k hsXrrqxOyFXVshw8++q3+ChcEblhB58JZSV8ROPfF3CsDBLSB44LPXQwZV7Z3Jr+K/SJ 4VPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@arista.com header.s=Arista-A header.b=cbPykIdL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=REJECT dis=NONE) header.from=arista.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a2si3153905pgw.264.2019.02.08.16.18.06; Fri, 08 Feb 2019 16:18:24 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@arista.com header.s=Arista-A header.b=cbPykIdL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=REJECT dis=NONE) header.from=arista.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726852AbfBIAQj (ORCPT + 99 others); Fri, 8 Feb 2019 19:16:39 -0500 Received: from mx.aristanetworks.com ([162.210.129.12]:54406 "EHLO prod-mx.aristanetworks.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726522AbfBIAQj (ORCPT ); Fri, 8 Feb 2019 19:16:39 -0500 Received: from prod-mx.aristanetworks.com (localhost [127.0.0.1]) by prod-mx.aristanetworks.com (Postfix) with ESMTP id C6BF2E5F; Fri, 8 Feb 2019 16:16:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arista.com; s=Arista-A; t=1549671398; bh=R7LyMcPXHlOVl1UD0M9CSASLtyZS2/6CtFGEODaNu1s=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=cbPykIdLztrpZESk5irYbGbb15kb3VJTJipvSUNXHRBwaSTVQecuIEC8Ag84NPZ7t XsFEISWyZaZCqm2adY01WA09jnW+FCHX62mRBA+WAe+s/oBaWQUJ9821wv5V9qUtua RJd9iyci0L11buPyKP1ueMf/jbhgsAgBLHJdj9SDngTqBGp90VY3ShtSR3ZFfHbwC0 rCzZX6PWqf8BxHqnd5YUqit52FB+bEj4gqgkDFAOpdMOFpRh+A7PJIdCRMt9wHkVAu VTZkol73sD4gORrZbcVJKc+YrULK/XOY+Rk8Vdat9bMJm0RtDbZaqQb7dAu+/sjTkQ KtQuDYtx5YGsA== Received: from visor (unknown [172.20.208.17]) by prod-mx.aristanetworks.com (Postfix) with ESMTP id B88B9E39; Fri, 8 Feb 2019 16:16:38 -0800 (PST) Date: Fri, 8 Feb 2019 16:16:38 -0800 From: Ivan Delalande To: "Eric W. Biederman" Cc: Andrew Morton , Al Viro , Dmitry Safonov <0x7f454c46@gmail.com>, Oleg Nesterov , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Lutomirski Subject: Re: [PATCH v2] exec: don't force_sigsegv processes with a pending fatal signal Message-ID: <20190209001638.GA14025@visor> References: <20190205025308.GA24455@visor> <20190205131119.3e388a0a1a69c0a041ed87ef@linux-foundation.org> <20190206031029.GB9368@visor> <87pns2q2ug.fsf@xmission.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87pns2q2ug.fsf@xmission.com> User-Agent: Mutt/1.11.3 (2019-02-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Eric, On Thu, Feb 07, 2019 at 11:13:59PM -0600, Eric W. Biederman wrote: > I just noticed this. From my patch queue that I intend to send to > Linus tomorrow. I think this change fixes your issue of getting > the SIGSEGV instead of the already pending fatal signal. > > So I think this fixes your issue without any other code changes. > Ivan can you verify that the patch below is enough? I was having issues with just this patch applied on top of v5.0-rc5 or the latest master: defunct processes accumulating, exiting processes that would hang forever, and some kernel functions eating all the CPU (setup_sigcontext, common_interrupt, __clear_user, do_signal…). But using your user-namespace.git/for-linus worked great and I've been running my reproducer for a few hours now without issue. I'll probably keep it running over the week-end as it has been unreliable at times, but it looks promising so far. A difference I've noticed with your tree (unrelated to my issue here but that you may want to look at) is when I run my reproducer under strace -f, I'm now getting quite a lot of "Exit of unknown pid 12345 ignored" warnings from strace, which I've never seen with mainline. My reproducer simply fork-exec tail processes in a loop, and tries to sigkill them in the parent with a variable delay. Thank you, > diff --git a/kernel/signal.c b/kernel/signal.c > index 9ca8e5278c8e..5424cb0006bc 100644 > --- a/kernel/signal.c > +++ b/kernel/signal.c > @@ -2393,6 +2393,11 @@ bool get_signal(struct ksignal *ksig) > goto relock; > } > > + /* Has this task already been marked for death? */ > + ksig->info.si_signo = signr = SIGKILL; > + if (signal_group_exit(signal)) > + goto fatal; > + > for (;;) { > struct k_sigaction *ka; > > @@ -2488,6 +2493,7 @@ bool get_signal(struct ksignal *ksig) > continue; > } > > + fatal: > spin_unlock_irq(&sighand->siglock); > > -- Ivan Delalande Arista Networks