blob: 33a7d4d9341afc025b539948155ceb7cb10b16b5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192]
helo=mx.sourceforge.net)
by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
(envelope-from <gavinandresen@gmail.com>) id 1QthV7-0005zk-M6
for bitcoin-development@lists.sourceforge.net;
Wed, 17 Aug 2011 14:53:49 +0000
Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of gmail.com
designates 209.85.216.182 as permitted sender)
client-ip=209.85.216.182; envelope-from=gavinandresen@gmail.com;
helo=mail-qy0-f182.google.com;
Received: from mail-qy0-f182.google.com ([209.85.216.182])
by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
(Exim 4.76) id 1QthV7-0000Sh-0g
for bitcoin-development@lists.sourceforge.net;
Wed, 17 Aug 2011 14:53:49 +0000
Received: by qyk9 with SMTP id 9so813384qyk.13
for <bitcoin-development@lists.sourceforge.net>;
Wed, 17 Aug 2011 07:53:43 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.142.49.2 with SMTP id w2mr550631wfw.50.1313592823332; Wed, 17
Aug 2011 07:53:43 -0700 (PDT)
Received: by 10.142.133.12 with HTTP; Wed, 17 Aug 2011 07:53:43 -0700 (PDT)
Date: Wed, 17 Aug 2011 10:53:43 -0400
Message-ID: <CABsx9T0nZcAnM29R8H9Diw3B3Ak2UXzE4u6zCpfCL0T8cF60mg@mail.gmail.com>
From: Gavin Andresen <gavinandresen@gmail.com>
To: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Content-Type: text/plain; charset=ISO-8859-1
X-Spam-Score: -1.1 (-)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
See http://spamassassin.org/tag/ for more details.
-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
sender-domain
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
(gavinandresen[at]gmail.com)
-0.0 SPF_PASS SPF: sender matches SPF record
-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
author's domain
0.1 DKIM_SIGNED Message has a DKIM or DK signature,
not necessarily valid
-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
0.5 AWL AWL: From: address is in the auto white-list
X-Headers-End: 1QthV7-0000Sh-0g
Subject: [Bitcoin-development] DEBUG_LOCKORDER : early detection of
potential deadlocks
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Wed, 17 Aug 2011 14:53:49 -0000
Commit 865ed8a adds a new compile-time #ifdef : DEBUG_LOCKORDER
Compile with -DDEBUG_LOCKORDER and every time a lock is acquired by a
CCriticalSection a check is made to record the order of locks and
complain if they are being acquired in an inconsistent order. Here's
what you get in debug.log when potential deadlocks are detected:
POTENTIAL DEADLOCK DETECTED
Previous lock order was:
pwallet->cs_mapWallet db.cpp:686
pwallet->cs_KeyStore db.cpp:687
cs_KeyStore keystore.cpp:74
cs_vMasterKey keystore.cpp:75
cs_KeyStore keystore.cpp:31
Current lock order is:
pwallet->cs_mapWallet db.cpp:686
pwallet->cs_KeyStore db.cpp:687
cs_KeyStore keystore.cpp:74
cs_vMasterKey keystore.cpp:75
POTENTIAL DEADLOCK DETECTED
Previous lock order was:
pnode->cs_vRecv net.cpp:1525
cs_main main.cpp:2372
cs_vSend net.h:681
Current lock order is:
pnode->cs_vSend net.cpp:1531
cs_main main.cpp:2411
I'll be working on figuring out how to eliminate these, and will be
working on some RPC stress-tests that try to exercise all the code
paths to early-detect other potential problems.
--
--
Gavin Andresen
|