diff --git a/src/net_processing.cpp b/src/net_processing.cpp --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -1702,9 +1702,6 @@ if (pnode->m_proof_relay && now > (pnode->m_proof_relay->lastSharedProofsUpdate.load() + AVALANCHE_AVAPROOFS_TIMEOUT)) { - LogPrint(BCLog::AVALANCHE, - "Cleaning up timed out compact proofs from peer %d\n", - pnode->GetId()); pnode->m_proof_relay->sharedProofs = {}; } }); diff --git a/test/functional/abc_p2p_compactproofs.py b/test/functional/abc_p2p_compactproofs.py --- a/test/functional/abc_p2p_compactproofs.py +++ b/test/functional/abc_p2p_compactproofs.py @@ -498,10 +498,24 @@ self.log.info( "Check the node will not send the proofs if not requested before the timeout elapsed") + # Disconnect the peers + for peer in node.p2ps: + peer.peer_disconnect() + peer.wait_for_disconnect() + mocktime = int(time.time()) node.setmocktime(mocktime) - slow_peer = node.add_p2p_connection(ProofStoreP2PInterface()) + slow_peer = ProofStoreP2PInterface() + node.add_outbound_p2p_connection( + slow_peer, + p2p_idx=0, + connection_type="avalanche", + services=NODE_NETWORK | NODE_AVALANCHE, + ) + slow_peer.wait_until( + lambda: slow_peer.last_message.get("getavaproofs")) + slow_peer.nodeid = node.getpeerinfo()[-1]['id'] _ = request_proofs(slow_peer) @@ -509,8 +523,13 @@ mocktime += AVALANCHE_AVAPROOFS_TIMEOUT + 1 node.setmocktime(mocktime) - with node.assert_debug_log([f"Cleaning up timed out compact proofs from peer {slow_peer.nodeid}"]): - node.mockscheduler(AVALANCHE_MAX_PERIODIC_NETWORKING_INTERVAL) + node.mockscheduler(AVALANCHE_MAX_PERIODIC_NETWORKING_INTERVAL) + + # Periodic compact proofs requests are sent in the same loop than the + # cleanup, so when such a request is made we are sure the cleanup did + # happen. + slow_peer.wait_until( + lambda: slow_peer.message_count.get("getavaproofs") > 1) req = msg_avaproofsreq() req.indices = range(numof_proof)