From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5062 invoked by alias); 9 Jun 2014 10:29:33 -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 5052 invoked by uid 89); 9 Jun 2014 10:29:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 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; Mon, 09 Jun 2014 10:29:31 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s59ATUwX027466 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 9 Jun 2014 06:29:30 -0400 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s59ATSnw003800; Mon, 9 Jun 2014 06:29:29 -0400 Message-ID: <53958C88.4070209@redhat.com> Date: Mon, 09 Jun 2014 10:29:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Jan Kratochvil CC: gdb-patches@sourceware.org Subject: Re: [patch] linux_nat_kill() compat. with linux-2.4.x References: <20140316135916.GA31463@host2.jankratochvil.net> <537CA0E7.6010505@redhat.com> <20140606201514.GA23334@host2.jankratochvil.net> In-Reply-To: <20140606201514.GA23334@host2.jankratochvil.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2014-06/txt/msg00366.txt.bz2 On 06/06/2014 09:15 PM, Jan Kratochvil wrote: > 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. Great. > Fine with dropping the patch although I still do not find it obvious the patch > is no longer relevant. Thanks, I'd rather drop it. > 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.) I think any case that this bullet proofing patch could work around have now been fixed. > It also may hang somewhere else and not in linux_nat_kill(). Right. I'd say it's much more likely (even though not very likely, tbc) that we see hangs elsewhere than in linux_nat_kill now. E.g., GDB core's is_executing state getting out of sync with lwp->stopped. > 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). Right, I'd rather just fix the GDB bugs, and only consider such a patch if we need to work around a kernel bug (though I'd rather just ignore very old kernels like 2.4 by now). -- Pedro Alves