qa/rpc_tests: Wait for handshake to complete in connect_nodes
This avoids a race condition in which the connection was made but the version handshake is not completed yet. In that case transactions won't be broadcasted to a peer yet, and the nodes will wait forever for their mempools to sync.
This commit is contained in:
parent
0869df195c
commit
3b1295e988
1 changed files with 4 additions and 0 deletions
|
@ -182,6 +182,10 @@ def wait_bitcoinds():
|
||||||
def connect_nodes(from_connection, node_num):
|
def connect_nodes(from_connection, node_num):
|
||||||
ip_port = "127.0.0.1:"+str(p2p_port(node_num))
|
ip_port = "127.0.0.1:"+str(p2p_port(node_num))
|
||||||
from_connection.addnode(ip_port, "onetry")
|
from_connection.addnode(ip_port, "onetry")
|
||||||
|
# poll until version handshake complete to avoid race conditions
|
||||||
|
# with transaction relaying
|
||||||
|
while any(peer['version'] == 0 for peer in from_connection.getpeerinfo()):
|
||||||
|
time.sleep(0.1)
|
||||||
|
|
||||||
def find_output(node, txid, amount):
|
def find_output(node, txid, amount):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Add table
Reference in a new issue