[tests] Fix p2p_sendheaders race
p2p_sendheaders has a race in part 1.3. part 1.2 sends a block to the node over the 'test_node' connection, but doesn't wait for an inv to be received on the 'inv_node' connection. If we get to part 1.3 before that inv has been received, then the subsequent call to check_last_inv_announcement could fail.
This commit is contained in:
parent
6579d80572
commit
75848bcf40
1 changed files with 2 additions and 0 deletions
|
@ -306,6 +306,7 @@ class SendHeadersTest(BitcoinTestFramework):
|
||||||
test_node.clear_block_announcements() # since we requested headers...
|
test_node.clear_block_announcements() # since we requested headers...
|
||||||
elif i == 2:
|
elif i == 2:
|
||||||
# this time announce own block via headers
|
# this time announce own block via headers
|
||||||
|
inv_node.clear_block_announcements()
|
||||||
height = self.nodes[0].getblockcount()
|
height = self.nodes[0].getblockcount()
|
||||||
last_time = self.nodes[0].getblock(self.nodes[0].getbestblockhash())['time']
|
last_time = self.nodes[0].getblock(self.nodes[0].getbestblockhash())['time']
|
||||||
block_time = last_time + 1
|
block_time = last_time + 1
|
||||||
|
@ -315,6 +316,7 @@ class SendHeadersTest(BitcoinTestFramework):
|
||||||
test_node.wait_for_getdata([new_block.sha256])
|
test_node.wait_for_getdata([new_block.sha256])
|
||||||
test_node.send_message(msg_block(new_block))
|
test_node.send_message(msg_block(new_block))
|
||||||
test_node.sync_with_ping() # make sure this block is processed
|
test_node.sync_with_ping() # make sure this block is processed
|
||||||
|
wait_until(lambda: inv_node.block_announced, timeout=60, lock=mininode_lock)
|
||||||
inv_node.clear_block_announcements()
|
inv_node.clear_block_announcements()
|
||||||
test_node.clear_block_announcements()
|
test_node.clear_block_announcements()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue