I've been seeing consistent failures from both of these tests on my macOS machine:
rpc_createmultisig.py --descriptors | ✖ Failed | 105 s
wallet_keypool.py --descriptors | ✖ Failed | 127 s
ALL | ✖ Failed | 10130 s (accumulated)
wallet_keypool.py --descriptors
92/172 - wallet_keypool.py --descriptors failed, Duration: 127 s
stdout:
2020-10-19T02:52:36.843000Z TestFramework (INFO): Initializing test directory /var/folders/z2/cn877pxd3czdfh47mfkmbwgm0000gn/T/test_runner_₿_🏃_20201019_104219/wallet_keypool_91
2020-10-19T02:53:42.984000Z TestFramework (ERROR): JSONRPC error
Traceback (most recent call last):
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 168, in _get_response
http_response = self.__conn.getresponse()
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 1198, in getresponse
response.begin()
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 297, in begin
version, status, reason = self._read_status()
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 258, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/socket.py", line 576, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_framework.py", line 126, in main
self.run_test()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/wallet_keypool.py", line 132, in run_test
nodes[0].keypoolrefill(100)
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/coverage.py", line 47, in __call__
return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 144, in __call__
response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 108, in _request
return self._get_response()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 175, in _get_response
self.__conn.timeout)})
test_framework.authproxy.JSONRPCException: 'keypoolrefill' RPC took longer than 30.000000 seconds. Consider using larger timeout for calls that take longer to return. (-344)
2020-10-19T02:53:43.103000Z TestFramework (INFO): Stopping nodes
2020-10-19T02:53:43.136000Z TestFramework.node0 (ERROR): Unable to stop node.
Traceback (most recent call last):
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_node.py", line 319, in stop_node
self.stop(wait=wait)
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/coverage.py", line 47, in __call__
return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 144, in __call__
response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 107, in _request
self.__conn.request(method, path, postdata, headers)
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 1107, in request
self._send_request(method, url, body, headers)
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 1142, in _send_request
self.putrequest(method, url, **skips)
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 975, in putrequest
raise CannotSendRequest(self.__state)
http.client.CannotSendRequest: Request-sent
2020-10-19T02:54:43.167000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: ''''
def is_node_stopped(self):
"""Checks whether the node has stopped.
Returns True if the node has stopped. False otherwise.
This method is responsible for freeing resources (self.process)."""
if not self.running:
return True
return_code = self.process.poll()
if return_code is None:
return False
# process has stopped. Assert that it didn't return an error code.
assert return_code == 0, self._node_msg(
"Node returned non-zero exit code (%d) when stopping" % return_code)
self.running = False
self.process = None
self.rpc_connected = False
self.rpc = None
self.log.debug("Node stopped")
return True
'''
[node 0] Cleaning up leftover process
stderr:
Traceback (most recent call last):
File "/Users/michael/github/bitcoin-merge-tree/test/functional/wallet_keypool.py", line 192, in <module>
KeyPoolTest().main()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_framework.py", line 149, in main
exit_code = self.shutdown()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_framework.py", line 273, in shutdown
self.stop_nodes()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_framework.py", line 521, in stop_nodes
node.wait_until_stopped()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_node.py", line 362, in wait_until_stopped
wait_until_helper(self.is_node_stopped, timeout=timeout, timeout_factor=self.timeout_factor)
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/util.py", line 260, in wait_until_helper
raise AssertionError("Predicate {} not true after {} seconds".format(predicate_source, timeout))
AssertionError: Predicate ''''
def is_node_stopped(self):
"""Checks whether the node has stopped.
Returns True if the node has stopped. False otherwise.
This method is responsible for freeing resources (self.process)."""
if not self.running:
return True
return_code = self.process.poll()
if return_code is None:
return False
# process has stopped. Assert that it didn't return an error code.
assert return_code == 0, self._node_msg(
"Node returned non-zero exit code (%d) when stopping" % return_code)
self.running = False
self.process = None
self.rpc_connected = False
self.rpc = None
self.log.debug("Node stopped")
return True
''' not true after 60.0 seconds
rpc_createmultisig.py --descriptors
117/172 - rpc_createmultisig.py --descriptors failed, Duration: 105 s
stdout:
2020-10-19T02:55:06.232000Z TestFramework (INFO): Initializing test directory /var/folders/z2/cn877pxd3czdfh47mfkmbwgm0000gn/T/test_runner_₿_🏃_20201019_104219/rpc_createmultisig_68
2020-10-19T02:55:21.473000Z TestFramework (INFO): Generating blocks ...
2020-10-19T02:55:51.511000Z TestFramework (ERROR): JSONRPC error
Traceback (most recent call last):
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 168, in _get_response
http_response = self.__conn.getresponse()
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 1198, in getresponse
response.begin()
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 297, in begin
version, status, reason = self._read_status()
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 258, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/socket.py", line 576, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_framework.py", line 126, in main
self.run_test()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/rpc_createmultisig.py", line 48, in run_test
node0.generate(149)
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_node.py", line 298, in generate
return self.generatetoaddress(nblocks=nblocks, address=self.get_deterministic_priv_key().address, maxtries=maxtries)
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/coverage.py", line 47, in __call__
return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 144, in __call__
response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 108, in _request
return self._get_response()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 175, in _get_response
self.__conn.timeout)})
test_framework.authproxy.JSONRPCException: 'generatetoaddress' RPC took longer than 30.000000 seconds. Consider using larger timeout for calls that take longer to return. (-344)
2020-10-19T02:55:51.600000Z TestFramework (INFO): Stopping nodes
2020-10-19T02:55:51.631000Z TestFramework.node0 (ERROR): Unable to stop node.
Traceback (most recent call last):
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_node.py", line 319, in stop_node
self.stop(wait=wait)
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/coverage.py", line 47, in __call__
return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 144, in __call__
response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/authproxy.py", line 107, in _request
self.__conn.request(method, path, postdata, headers)
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 1107, in request
self._send_request(method, url, body, headers)
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 1142, in _send_request
self.putrequest(method, url, **skips)
File "/Users/michael/.pyenv/versions/3.5.6/lib/python3.5/http/client.py", line 975, in putrequest
raise CannotSendRequest(self.__state)
http.client.CannotSendRequest: Request-sent
2020-10-19T02:56:51.850000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: ''''
def is_node_stopped(self):
"""Checks whether the node has stopped.
Returns True if the node has stopped. False otherwise.
This method is responsible for freeing resources (self.process)."""
if not self.running:
return True
return_code = self.process.poll()
if return_code is None:
return False
# process has stopped. Assert that it didn't return an error code.
assert return_code == 0, self._node_msg(
"Node returned non-zero exit code (%d) when stopping" % return_code)
self.running = False
self.process = None
self.rpc_connected = False
self.rpc = None
self.log.debug("Node stopped")
return True
'''
stderr:
Traceback (most recent call last):
File "/Users/michael/github/bitcoin-merge-tree/test/functional/rpc_createmultisig.py", line 221, in <module>
RpcCreateMultiSigTest().main()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_framework.py", line 149, in main
exit_code = self.shutdown()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_framework.py", line 273, in shutdown
self.stop_nodes()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_framework.py", line 521, in stop_nodes
node.wait_until_stopped()
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/test_node.py", line 362, in wait_until_stopped
wait_until_helper(self.is_node_stopped, timeout=timeout, timeout_factor=self.timeout_factor)
File "/Users/michael/github/bitcoin-merge-tree/test/functional/test_framework/util.py", line 260, in wait_until_helper
raise AssertionError("Predicate {} not true after {} seconds".format(predicate_source, timeout))
AssertionError: Predicate ''''
def is_node_stopped(self):
"""Checks whether the node has stopped.
Returns True if the node has stopped. False otherwise.
This method is responsible for freeing resources (self.process)."""
if not self.running:
return True
return_code = self.process.poll()
if return_code is None:
return False
# process has stopped. Assert that it didn't return an error code.
assert return_code == 0, self._node_msg(
"Node returned non-zero exit code (%d) when stopping" % return_code)
self.running = False
self.process = None
self.rpc_connected = False
self.rpc = None
self.log.debug("Node stopped")
return True
''' not true after 60.0 seconds