Skip to content

Commit 1253f86

Browse files
author
MarcoFalke
committed
Merge #9077: [qa] Increase wallet-dump RPC timeout
e89614b [qa] Add more helpful RPC timeout message (Russell Yanofsky) 8463aaa [qa] Increase wallet-dump RPC timeout (Russell Yanofsky)
2 parents 78cdd64 + e89614b commit 1253f86

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

qa/rpc-tests/test_framework/authproxy.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import decimal
4343
import json
4444
import logging
45+
import socket
4546
try:
4647
import urllib.parse as urlparse
4748
except ImportError:
@@ -161,7 +162,15 @@ def _batch(self, rpc_call_list):
161162
return self._request('POST', self.__url.path, postdata.encode('utf-8'))
162163

163164
def _get_response(self):
164-
http_response = self.__conn.getresponse()
165+
try:
166+
http_response = self.__conn.getresponse()
167+
except socket.timeout as e:
168+
raise JSONRPCException({
169+
'code': -344,
170+
'message': '%r RPC took longer than %f seconds. Consider '
171+
'using larger timeout for calls that take '
172+
'longer to return.' % (self._service_name,
173+
self.__conn.timeout)})
165174
if http_response is None:
166175
raise JSONRPCException({
167176
'code': -342, 'message': 'missing HTTP response from server'})

qa/rpc-tests/test_framework/util.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ def start_node(i, dirname, extra_args=None, rpchost=None, timewait=None, binary=
341341

342342
return proxy
343343

344-
def start_nodes(num_nodes, dirname, extra_args=None, rpchost=None, binary=None):
344+
def start_nodes(num_nodes, dirname, extra_args=None, rpchost=None, timewait=None, binary=None):
345345
"""
346346
Start multiple bitcoinds, return RPC connections to them
347347
"""
@@ -350,7 +350,7 @@ def start_nodes(num_nodes, dirname, extra_args=None, rpchost=None, binary=None):
350350
rpcs = []
351351
try:
352352
for i in range(num_nodes):
353-
rpcs.append(start_node(i, dirname, extra_args[i], rpchost, binary=binary[i]))
353+
rpcs.append(start_node(i, dirname, extra_args[i], rpchost, timewait=timewait, binary=binary[i]))
354354
except: # If one node failed to start, stop the others
355355
stop_nodes(rpcs)
356356
raise

qa/rpc-tests/wallet-dump.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,11 @@ def __init__(self):
6161
self.extra_args = [["-keypool=90"]]
6262

6363
def setup_network(self, split=False):
64-
self.nodes = start_nodes(self.num_nodes, self.options.tmpdir, self.extra_args)
64+
# Use 1 minute timeout because the initial getnewaddress RPC can take
65+
# longer than the default 30 seconds due to an expensive
66+
# CWallet::TopUpKeyPool call, and the encryptwallet RPC made later in
67+
# the test often takes even longer.
68+
self.nodes = start_nodes(self.num_nodes, self.options.tmpdir, self.extra_args, timewait=60)
6569

6670
def run_test (self):
6771
tmpdir = self.options.tmpdir

0 commit comments

Comments
 (0)