On slow hardware (e.g. qemu s390x), the test may take long enough for a block timeout to hit.
Should be easy to fix with by using mocktime.
Test folder: https://drahtbot.space/temp_scratch/p2p_ibd_stalling_23.tar.zstd
Log:
0 node0 2024-08-22T06:47:16.815656Z [msghand] [net_processing.cpp:6260] [SendMessages] Timeout downloading block 18f9c9ae8651e9aeb776ec51943c7fb4b813b1dedae262459d1915f69c345f52 from peer=0, disconnecting
1 node0 2024-08-22T06:47:16.815964Z [msghand] [net_processing.cpp:3721] [ProcessMessage] [net] received: ping (8 bytes) peer=3
2 node0 2024-08-22T06:47:16.816064Z [msghand] [net.cpp:3811] [PushMessage] [net] sending pong (8 bytes) peer=3
3 node0 2024-08-22T06:47:16.915330Z [net] [net.cpp:554] [CloseSocketDisconnect] [net] disconnecting peer=0
4 node0 2024-08-22T06:47:16.918118Z [msghand] [net.cpp:3811] [PushMessage] [net] sending getheaders (709 bytes) peer=2
5 node0 2024-08-22T06:47:16.918724Z [msghand] [net_processing.cpp:5956] [SendMessages] [net] initial getheaders (1023) to peer=2 (startheight:-1)
6 node0 2024-08-22T06:47:16.918966Z [msghand] [net_processing.cpp:6330] [SendMessages] [net] Requesting block 18f9c9ae8651e9aeb776ec51943c7fb4b813b1dedae262459d1915f69c345f52 (1) peer=2
7 node0 2024-08-22T06:47:16.919067Z [msghand] [net.cpp:3811] [PushMessage] [net] sending getdata (37 bytes) peer=2
8 node0 2024-08-22T06:47:16.919942Z [net] [net_processing.cpp:1829] [FinalizeNode] [net] Cleared nodestate for peer=0
9 test 2024-08-22T06:47:17.017000Z TestFramework.p2p (DEBUG): Received message from 0:0: msg_pong(nonce=00000000)
10 test 2024-08-22T06:47:17.119000Z TestFramework.p2p (DEBUG): Received message from 0:0: msg_pong(nonce=00000002)
11 node0 2024-08-22T06:47:17.520157Z [http] [httpserver.cpp:304] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:47064
12 node0 2024-08-22T06:47:17.520799Z [httpworker.2] [rpc/request.cpp:232] [parse] [rpc] ThreadRPCServer method=setmocktime user=__cookie__
13 node0 2024-08-22T06:47:17.523977Z (mocktime: 2024-08-22T06:47:20Z) [msghand] [net.cpp:3811] [PushMessage] [net] sending ping (8 bytes) peer=3
14 test 2024-08-22T06:47:17.729000Z TestFramework.p2p (DEBUG): Send message to 0:0: msg_ping(nonce=00000000)
15 test 2024-08-22T06:47:18.034000Z TestFramework.p2p (DEBUG): Send message to 0:0: msg_ping(nonce=00000003)
16 test 2024-08-22T06:47:18.133000Z TestFramework.p2p (DEBUG): Received message from 0:0: msg_getheaders(locator=CBlockLocator(vHave=[51028225979965589115881295727807611172333580580510573636467498638508850996547, 37346697185465419591271892594955379773421573672880910261031220352642097666271, 47497146063212786347821522065691681944014067115601124413323342786269280909619, 10155215406424420928512133715677395700252338193336708338193649843546379819750, 12596206149537312092722852210202627880578754014803501430438212157406146713615, 4988562031271065201841151199285356329364187965297931174338631... (msg truncated)
17 test 2024-08-22T06:47:18.231000Z TestFramework.p2p (DEBUG): Received message from 0:0: msg_getdata(inv=[CInv(type=WitnessBlock hash=18f9c9ae8651e9aeb776ec51943c7fb4b813b1dedae262459d1915f69c345f52)])
18 test 2024-08-22T06:47:18.232000Z TestFramework.p2p (DEBUG): Closed connection to: 0:0
19 test 2024-08-22T06:47:18.329000Z TestFramework.p2p (DEBUG): Received message from 0:0: msg_ping(nonce=c80d58f07fbd6fa5)
20 test 2024-08-22T06:47:18.331000Z TestFramework (ERROR): Assertion failed
21 Traceback (most recent call last):
22 File "/ci_container_base/ci/scratch/build/bitcoin-s390x-linux-gnu/test/functional/test_framework/test_framework.py", line 132, in main
23 self.run_test()
24 File "/ci_container_base/ci/scratch/build/bitcoin-s390x-linux-gnu/test/functional/p2p_ibd_stalling.py", line 90, in run_test
25 self.all_sync_send_with_ping(peers)
26 File "/ci_container_base/ci/scratch/build/bitcoin-s390x-linux-gnu/test/functional/p2p_ibd_stalling.py", line 155, in all_sync_send_with_ping
27 p.sync_with_ping()
28 File "/ci_container_base/ci/scratch/build/bitcoin-s390x-linux-gnu/test/functional/test_framework/p2p.py", line 703, in sync_with_ping
29 self.wait_until(test_function, timeout=timeout)
30 File "/ci_container_base/ci/scratch/build/bitcoin-s390x-linux-gnu/test/functional/test_framework/p2p.py", line 588, in wait_until
31 wait_until_helper_internal(test_function, timeout=timeout, lock=p2p_lock, timeout_factor=self.timeout_factor)
32 File "/ci_container_base/ci/scratch/build/bitcoin-s390x-linux-gnu/test/functional/test_framework/util.py", line 286, in wait_until_helper_internal
33 if predicate():
34 ^^^^^^^^^^^
35 File "/ci_container_base/ci/scratch/build/bitcoin-s390x-linux-gnu/test/functional/test_framework/p2p.py", line 585, in test_function
36 assert self.is_connected
37 ^^^^^^^^^^^^^^^^^
38 AssertionError
39