POTENTIAL DEADLOCK DETECTED
Previous lock order was:
(2) 'cs_wallet' in wallet/wallet.cpp:3826 (in thread 'qt-init')
(2) 'pwallet->cs_wallet' in wallet/walletdb.cpp:705 (in thread 'qt-init')
(1) 'cs_KeyStore' in wallet/scriptpubkeyman.cpp:971 (in thread 'qt-init')
Current lock order is:
'cs_deqsessions' in coinjoin/client.cpp:261 (in thread 'main')
(1) 'cs_KeyStore' in wallet/scriptpubkeyman.cpp:1522 (in thread 'main')
(2) 'cs_wallet' in wallet/wallet.cpp:1629 (in thread 'main')
This one is for ResetPool().
What was done?
Lock cs_wallet when calling keyHolderStorage.ReturnAll() in some places* to ensure the right order of locks.
(*In other places cs_wallet is held already, no need to double lock).
How Has This Been Tested?
Mixing
Breaking Changes
n/a
Checklist:
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added or updated relevant unit/integration/functional/e2e tests
[ ] I have made corresponding changes to the documentation
[x] I have assigned this pull request to a milestone
Issue being fixed or feature implemented
This one is for
ResetPool()
.What was done?
Lock
cs_wallet
when callingkeyHolderStorage.ReturnAll()
in some places* to ensure the right order of locks.(*In other places
cs_wallet
is held already, no need to double lock).How Has This Been Tested?
Mixing
Breaking Changes
n/a
Checklist: