Skip to content

Commit e8989f2

Browse files
committed
Merge bitcoin/bitcoin#28325: test: wallet_backup.py, fix intermittent failure in "restore using dumped wallet"
c4929cf test: wallet_backup.py, fix intermittent failure in "restore using dumped wallet" (furszy) Pull request description: Aiming to fix #25652. The failure arises because the test expects `init_wallet()` (the test framework function) to create a wallet with no keys. However, the function also imports the deterministic private key used to receive the coinbase coins. This causes a race within the "restore using dumped wallet" case, where we intend to have a new wallet (with no existing keys) to test the 'importwallet()' RPC result. The reason why this failure is intermittent is that it depends on other peers delivering the chain right after node2 startup and prior to the test 'node2.getbalance()' call and also the synchronization of the validation queue. ACKs for top commit: MarcoFalke: lgtm ACK c4929cf Tree-SHA512: 80faa590439305576086a7d6e328f2550c97b218771fc5eba0567feff78732a2605d028a30a368d50944ae3d25fdbd6d321fb97321791a356416f2b790999613
2 parents 94af164 + c4929cf commit e8989f2

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

test/functional/wallet_backup.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,6 @@ def restore_wallet_existent_name(self):
140140
assert_raises_rpc_error(-36, error_message, node.restorewallet, wallet_name, backup_file)
141141
assert os.path.exists(wallet_file)
142142

143-
def init_three(self):
144-
self.init_wallet(node=0)
145-
self.init_wallet(node=1)
146-
self.init_wallet(node=2)
147-
148143
def run_test(self):
149144
self.log.info("Generating initial blockchain")
150145
self.generate(self.nodes[0], 1)
@@ -230,7 +225,10 @@ def run_test(self):
230225
shutil.rmtree(os.path.join(self.nodes[2].chain_path, 'chainstate'))
231226

232227
self.start_three(["-nowallet"])
233-
self.init_three()
228+
# Create new wallets for the three nodes.
229+
# We will use this empty wallets to test the 'importwallet()' RPC command below.
230+
for node_num in range(3):
231+
self.nodes[node_num].createwallet(wallet_name=self.default_wallet_name, descriptors=self.options.descriptors, load_on_startup=True)
234232

235233
assert_equal(self.nodes[0].getbalance(), 0)
236234
assert_equal(self.nodes[1].getbalance(), 0)

0 commit comments

Comments
 (0)