Skip to content

Commit 604015a

Browse files
committed
Merge bitcoin/bitcoin#25914: test: Fix intermittent issue in p2p_leak.py
fa2aae5 test: Fix intermittent issue in p2p_leak.py (MacroFake) Pull request description: Diff to reproduce: ```diff diff --git a/src/net.cpp b/src/net.cpp index 865ce2e..ccf289d77b 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1150,6 +1150,7 @@ bool CConnman::InactivityCheck(const CNode& node) const if (last_recv.count() == 0 || last_send.count() == 0) { LogPrint(BCLog::NET, "socket no message in first %i seconds, %d %d peer=%d\n", count_seconds(m_peer_connect_timeout), last_recv.count() != 0, last_send.count() != 0, node.GetId()); + UninterruptibleSleep(6s); return true; } ``` Example in CI: ``` node0 2022-08-12T09:51:56.015288Z [net] [net.cpp:1152] [InactivityCheck] [net] socket no message in first 3 seconds, 0 0 peer=0 test 2022-08-12T09:51:57.658000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_framework.py", line 133, in main self.run_test() File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/p2p_leak.py", line 155, in run_test assert not no_version_idle_peer.is_connected AssertionError ``` https://cirrus-ci.com/task/5346634421764096?logs=ci#L3683 ACKs for top commit: satsie: ACK fa2aae5 luke-jr: tACK fa2aae5 Tree-SHA512: e6ddf5b985f7da365b18b699ff8d0719b71b44e4e6bc5576d4099d1bad2c702495afd85f69f4edba89a883e13756a340946db2e7f4be41b1ac0e3c4f515ca4fd
2 parents ea67232 + fa2aae5 commit 604015a

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

test/functional/p2p_leak.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@ def run_test(self):
138138
# Give the node enough time to possibly leak out a message
139139
time.sleep(PEER_TIMEOUT + 2)
140140

141+
self.log.info("Connect peer to ensure the net thread runs the disconnect logic at least once")
142+
self.nodes[0].add_p2p_connection(P2PInterface())
143+
141144
# Make sure only expected messages came in
142145
assert not no_version_idle_peer.unexpected_msg
143146
assert not no_version_idle_peer.got_wtxidrelay
@@ -169,7 +172,7 @@ def run_test(self):
169172

170173
self.log.info('Check that old peers are disconnected')
171174
p2p_old_peer = self.nodes[0].add_p2p_connection(P2PInterface(), send_version=False, wait_for_verack=False)
172-
with self.nodes[0].assert_debug_log(['peer=4 using obsolete version 31799; disconnecting']):
175+
with self.nodes[0].assert_debug_log(["using obsolete version 31799; disconnecting"]):
173176
p2p_old_peer.send_message(self.create_old_version(31799))
174177
p2p_old_peer.wait_for_disconnect()
175178

0 commit comments

Comments
 (0)