Changeset View
Changeset View
Standalone View
Standalone View
test/functional/test_framework/test_node.py
Show First 20 Lines • Show All 304 Lines • ▼ Show 20 Lines | def wait_for_rpc_connection(self): | ||||
# connection is up | # connection is up | ||||
self.log.debug("RPC successfully started") | self.log.debug("RPC successfully started") | ||||
if self.use_cli: | if self.use_cli: | ||||
return | return | ||||
self.rpc = rpc | self.rpc = rpc | ||||
self.rpc_connected = True | self.rpc_connected = True | ||||
self.url = self.rpc.url | self.url = self.rpc.url | ||||
return | return | ||||
except IOError as e: | |||||
if e.errno != errno.ECONNREFUSED: # Port not yet open? | |||||
raise # unknown IO error | |||||
except JSONRPCException as e: # Initialization phase | except JSONRPCException as e: # Initialization phase | ||||
# -28 RPC in warmup | # -28 RPC in warmup | ||||
# -342 Service unavailable, RPC server started but is shutting down due to error | # -342 Service unavailable, RPC server started but is shutting down due to error | ||||
if e.error['code'] != -28 and e.error['code'] != -342: | if e.error['code'] != -28 and e.error['code'] != -342: | ||||
raise # unknown JSON RPC exception | raise # unknown JSON RPC exception | ||||
except ConnectionResetError: | |||||
# This might happen when the RPC server is in warmup, but shut down before the call to getblockcount | |||||
# succeeds. Try again to properly raise the FailedToStartError | |||||
pass | |||||
except OSError as e: | |||||
if e.errno != errno.ECONNREFUSED: # Port not yet open? | |||||
raise # unknown OS error | |||||
except ValueError as e: # cookie file not found and no rpcuser or rpcassword. bitcoind still starting | except ValueError as e: # cookie file not found and no rpcuser or rpcassword. bitcoind still starting | ||||
if "No RPC credentials" not in str(e): | if "No RPC credentials" not in str(e): | ||||
raise | raise | ||||
time.sleep(1.0 / poll_per_s) | time.sleep(1.0 / poll_per_s) | ||||
self._raise_assertion_error("Unable to connect to bitcoind") | self._raise_assertion_error("Unable to connect to bitcoind") | ||||
def generate(self, nblocks, maxtries=1000000): | def generate(self, nblocks, maxtries=1000000): | ||||
self.log.debug( | self.log.debug( | ||||
▲ Show 20 Lines • Show All 398 Lines • Show Last 20 Lines |