aboutsummaryrefslogtreecommitdiff
path: root/src/qt
diff options
context:
space:
mode:
authorRussell Yanofsky <russ@yanofsky.org>2017-08-24 14:12:21 -0400
committerMarcoFalke <falke.marco@gmail.com>2017-10-03 18:35:39 +0200
commit2cb720ae6122101c83a8836da057a5a7cba5b5df (patch)
treef2493a881014fbfde03c34d2df004801363089e2 /src/qt
parentb278a43646c8fb331a1b830b09a60ec2544dd6b6 (diff)
downloadbitcoin-2cb720ae6122101c83a8836da057a5a7cba5b5df.tar.xz
Acquire cs_main lock before cs_wallet during wallet initialization
CWallet::MarkConflicted may acquire the cs_main lock after CWalletDB::LoadWallet acquires the cs_wallet lock during wallet initialization. (CWalletDB::LoadWallet calls ReadKeyValue which calls CWallet::LoadToWallet which calls CWallet::MarkConflicted). This is the opposite order that cs_main and cs_wallet locks are acquired in the rest of the code, and so leads to POTENTIAL DEADLOCK DETECTED errors if bitcoin is built with -DDEBUG_LOCKORDER. This commit changes CWallet::LoadWallet (which calls CWalletDB::LoadWallet) to acquire both locks in the standard order. It also fixes some tests that were acquiring wallet and main locks out of order and failed with the new locking in CWallet::LoadWallet. Error was reported by Luke Dashjr <luke-jr@utopios.org> in https://botbot.me/freenode/bitcoin-core-dev/msg/90244330/ Github-Pull: #11126 Rebased-From: de9a1db2ed14e0c75ffd82dc031f7ad30c56d195
Diffstat (limited to 'src/qt')
0 files changed, 0 insertions, 0 deletions