From d3476b6ba02b5c9e2eddd39a400a784f37098ecc Mon Sep 17 00:00:00 2001 From: ThomasV Date: Wed, 23 Mar 2022 19:23:32 +0100 Subject: [PATCH] fix deadlock: self.lock should be taken before self.transaction_lock (self.lock is taken in self.get_tx.height) --- electrum/wallet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electrum/wallet.py b/electrum/wallet.py index 79fed1b0f..5a7d1dd07 100644 --- a/electrum/wallet.py +++ b/electrum/wallet.py @@ -867,7 +867,7 @@ class Abstract_Wallet(AddressSynchronizer, ABC): for txo in invoice.outputs: # type: PartialTxOutput invoice_amounts[txo.scriptpubkey] += 1 if parse_max_spend(txo.value) else txo.value relevant_txs = [] - with self.transaction_lock: + with self.lock, self.transaction_lock: for invoice_scriptpubkey, invoice_amt in invoice_amounts.items(): scripthash = bitcoin.script_to_scripthash(invoice_scriptpubkey.hex()) prevouts_and_values = self.db.get_prevouts_by_scripthash(scripthash)