From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5049 invoked by alias); 6 Jun 2014 20:15:22 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 5033 invoked by uid 89); 6 Jun 2014 20:15:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-4.4 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 06 Jun 2014 20:15:20 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s56KFIKs014334 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 6 Jun 2014 16:15:18 -0400 Received: from host2.jankratochvil.net (ovpn-116-48.ams2.redhat.com [10.36.116.48]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s56KFEw2004736 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Fri, 6 Jun 2014 16:15:17 -0400 Date: Fri, 06 Jun 2014 20:15:00 -0000 From: Jan Kratochvil To: Pedro Alves Cc: gdb-patches@sourceware.org Subject: Re: [patch] linux_nat_kill() compat. with linux-2.4.x Message-ID: <20140606201514.GA23334@host2.jankratochvil.net> References: <20140316135916.GA31463@host2.jankratochvil.net> <537CA0E7.6010505@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <537CA0E7.6010505@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-IsSubscribed: yes X-SW-Source: 2014-06/txt/msg00338.txt.bz2 On Wed, 21 May 2014 14:49:43 +0200, Pedro Alves wrote: > On 03/16/2014 01:59 PM, Jan Kratochvil wrote: > > diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c > > index b615423..ec84188 100644 > > --- a/gdb/linux-nat.c > > +++ b/gdb/linux-nat.c > > @@ -3777,8 +3777,15 @@ linux_nat_kill (struct target_ops *ops) > > { > > ptid_t ptid = pid_to_ptid (ptid_get_pid (inferior_ptid)); > > > > + /* Kill all LWP's before trying to stop them. In rare cases the > > + lwp_info state may not match the inferior and > > + stop_wait_callback could lock up. */ > > Hmm, I find this comment confusing and not really enlightening. > What sort of rare cases? It that PR15713? Best just fix that. > I've sent a patch: > https://sourceware.org/ml/gdb-patches/2014-05/msg00473.html The reproducible case is that PR15713 and it is sure great you have fixed it. Fine with dropping the patch although I still do not find it obvious the patch is no longer relevant. FSF GDB now relies on fact that ptraced inferior state always matches lp->stopped and there is a matching signal to wait for etc. In some cases GDB hangs during quit (and inferiors cleanup) and one has to kill GDB itself. Reasons are not known to me as I do not know how to reproduce it. (It may be also possible all such reasons have been fixed now.) It also may hang somewhere else and not in linux_nat_kill(). This patch made GDB foolproof against any state of inferior when killing the inferior so that GDB could no longer hang. But it would hide some possible remaining bugs in the code (which may be causing the GDB hangs). Jan