From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760111AbcIWOTT (ORCPT ); Fri, 23 Sep 2016 10:19:19 -0400 Received: from mail-wm0-f42.google.com ([74.125.82.42]:35635 "EHLO mail-wm0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759866AbcIWOTS (ORCPT ); Fri, 23 Sep 2016 10:19:18 -0400 Date: Fri, 23 Sep 2016 16:19:16 +0200 From: Michal Hocko To: Oleg Nesterov Cc: LKML , strace-devel@lists.sourceforge.net, Mike Galbraith , Aleksa Sarai Subject: Re: strace lockup when tracing exec in go Message-ID: <20160923141916.GR4478@dhcp22.suse.cz> References: <1474537209.5022.8.camel@gmail.com> <20160922095303.GD11875@dhcp22.suse.cz> <1474538945.5022.20.camel@gmail.com> <20160922110925.GE11875@dhcp22.suse.cz> <20160922135301.GF11875@dhcp22.suse.cz> <20160923102141.GA16189@redhat.com> <20160923111808.GJ4478@dhcp22.suse.cz> <20160923132101.GA27178@redhat.com> <20160923134058.GP4478@dhcp22.suse.cz> <20160923140724.GA29476@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160923140724.GA29476@redhat.com> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri 23-09-16 16:07:24, Oleg Nesterov wrote: > On 09/23, Michal Hocko wrote: > > > > On Fri 23-09-16 15:21:02, Oleg Nesterov wrote: > > > > > > This change is simply wrong no matter what. > > > > I've just tried to extend the existing > > > > /* > > * Tracers may want to know about even ignored signals. > > */ > > return !t->ptrace; > > > > but I probably just do not understand what that actually means. I > > thought that the tracer is _really_ interested in hearing about the > > signal. > > Yes, the tracer is really interested to know that a signal was sent to > the _tracee_, not the tracer ;) OK, now it makes more sense. I was really scratching my head to understand this part... > > > We could change do_notify_parent() > > > to call signal_wake_up() if tsk->ptrace, but see above, this won't help. > > > > So does this mean WONTFIX? Can we at least document this behavior? It > > surely is unexpected. > > No, no, no. Of course this must be fixed. The only problem is that I still > do not know what should we do. I'll try to return to this problem next week. > I'm afraid we will need to change de_thread() to wait until all other sub- > threads have passed exit_notify() or even exit_signals(), Yes making de_thread completely independent on the state of the tracer would be a huge improvement. While playing with this test case I triggered some other interesting hangs (e.g. strace hanging in tty while trying to print something). So just few interruptible waits is not a full solution. > but ooh I don't > like this. Plus in this case we will need to finally define what > PTRACE_EVENT_EXIT should actually do. OK, considering this has been broken for quite some time I do not think we are in hurry. I am slightly worried about how such a solution would be stable kernel safe but ohh well. -- Michal Hocko SUSE Labs