From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Neil Jerram" Newsgroups: gmane.lisp.guile.bugs Subject: Re: [PATCH] Final: thread lock nesting debugging Date: Wed, 19 Nov 2008 23:14:33 +0000 Message-ID: <49dd78620811191514m6e73438esd4f1474c9926880d@mail.gmail.com> References: <3ae3aa420811162042n4b5d50e3i136a9f7b00262a69@mail.gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1227136488 3248 80.91.229.12 (19 Nov 2008 23:14:48 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 19 Nov 2008 23:14:48 +0000 (UTC) Cc: bug-guile@gnu.org To: linasvepstas@gmail.com Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Thu Nov 20 00:15:51 2008 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1L2wH0-0001nV-S3 for guile-bugs@m.gmane.org; Thu, 20 Nov 2008 00:15:51 +0100 Original-Received: from localhost ([127.0.0.1]:34857 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L2wFq-0002BX-TE for guile-bugs@m.gmane.org; Wed, 19 Nov 2008 18:14:38 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L2wFn-0002BP-AZ for bug-guile@gnu.org; Wed, 19 Nov 2008 18:14:35 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L2wFm-0002BD-R7 for bug-guile@gnu.org; Wed, 19 Nov 2008 18:14:34 -0500 Original-Received: from [199.232.76.173] (port=36727 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L2wFm-0002BA-Ni for bug-guile@gnu.org; Wed, 19 Nov 2008 18:14:34 -0500 Original-Received: from po-out-1718.google.com ([72.14.252.155]:25395) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1L2wFn-0005no-07 for bug-guile@gnu.org; Wed, 19 Nov 2008 18:14:35 -0500 Original-Received: by po-out-1718.google.com with SMTP id y22so231024pof.1 for ; Wed, 19 Nov 2008 15:14:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=gO//7h4R57Jqq7Vdp3cYiyQpBDw8ABY0Tf8P7a7JjmA=; b=PgiT5QG2q/ezydD8Np7p+JJlO9W3DbKQcTEGE8JjLqJa+AqvUKAyaMJvNKtE95wcde NsSBs/zO3DkGkmi9V584u/UwAqGkIEuOvoZM34uqPIwdbhU1HyUpNBsI32WyzfzPbbYV AyOIg8+ewOwskONDyG/hWabvaKmo3A/LDTX28= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=W8gq6QvONl6hOM+H39dGLUXsWv2cBHufCLrB5vUctBOoM/BsZMkrictqGmXfql7G0I K13ZVkUUUuxhzx9lw+XgWxgVReID5v03hfS0CWDWdSNkIt27UvPnfHkDxfWNlC76o1MU 22brHw97QTUAHPBOeIenrGmErzQ1R7TqGJ2Oo= Original-Received: by 10.141.5.17 with SMTP id h17mr862047rvi.165.1227136473319; Wed, 19 Nov 2008 15:14:33 -0800 (PST) Original-Received: by 10.140.142.15 with HTTP; Wed, 19 Nov 2008 15:14:33 -0800 (PST) In-Reply-To: <3ae3aa420811162042n4b5d50e3i136a9f7b00262a69@mail.gmail.com> Content-Disposition: inline X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: bug-guile@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.bugs:4117 Archived-At: 2008/11/17 Linas Vepstas : > I've been seeing all sorts of deadlocks in guile, and so I wrote a small > debugging utility to try to track down the problems. Interesting patch! One query; I may be being a bit dumb, I'm only just recovering from a bad cold, but anyway... Your patch checks for a thread unlocking mutexes in the reverse order that it locked them in (let's call this point "A"). But I thought your recent investigations had shown that the problem was threads doing locking in inconsistent order, e.g. thread 1 locks M1 and then M2, while thread 2 locks M2 and then M1 (point "B"). Are points "A" and "B" equivalent? (It isn't obvious to me if so.) Regards, Neil