On master (3ab2582c7fe76d2839ab493512758d5601903c86) with this patch:
0--- a/src/net.cpp
1+++ b/src/net.cpp
2@@ -2868,7 +2868,7 @@ int64_t CConnman::PoissonNextSendInbound(int64_t now, int average_interval_secon
3
4 int64_t PoissonNextSend(int64_t now, int average_interval_seconds)
5 {
6- return now + (int64_t)(log1p(GetRand(1ULL << 48) * -0.0000000000000035527136788 /* -1/2^48 */) * average_interval_seconds * -1000000.0 + 0.5);
7+ return now + (int64_t)(log1p(((1ULL << 48) - 1) * -0.0000000000000035527136788 /* -1/2^48 */) * average_interval_seconds * -1000000.0 + 0.5);
8 }
9
10 CSipHasher CConnman::GetDeterministicRandomizer(uint64_t id) const
a bunch of functional tests fail due to the timeout:
0feature_notifications.py | ✖ Failed | 62 s
1interface_rest.py | ✖ Failed | 63 s
2interface_zmq.py | ✖ Failed | 64 s
3mempool_persist.py | ✖ Failed | 62 s
4mempool_unbroadcast.py | ✖ Failed | 32 s
5p2p_blocksonly.py | ✖ Failed | 61 s
6p2p_feefilter.py | ✖ Failed | 63 s
7p2p_getaddr_caching.py | ✖ Failed | 62 s
8p2p_permissions.py | ✖ Failed | 63 s
9p2p_segwit.py | ✖ Failed | 69 s
10p2p_tx_download.py | ✖ Failed | 75 s
11rpc_deprecated.py | ✖ Failed | 62 s
12rpc_psbt.py | ✖ Failed | 65 s
13rpc_psbt.py --descriptors | ✖ Failed | 67 s
14rpc_rawtransaction.py | ✖ Failed | 64 s
15wallet_abandonconflict.py | ✖ Failed | 63 s
16wallet_balance.py | ✖ Failed | 63 s
17wallet_basic.py | ✖ Failed | 68 s
18wallet_basic.py --descriptors | ✖ Failed | 72 s
19wallet_bumpfee.py | ✖ Failed | 64 s
20wallet_groups.py | ✖ Failed | 62 s
21wallet_implicitsegwit.py | ✖ Failed | 62 s
22wallet_listreceivedby.py | ✖ Failed | 62 s
23wallet_listtransactions.py | ✖ Failed | 62 s
24wallet_resendwallettransactions.py | ✖ Failed | 62 s
Just bumping timeout values only decreases the probability of a new timeout failure occurrence.
Suggested solution #19588 was ugly and controversial, and it has being closed for now.
Related issues: