qa: Functional tests are intrinsic vulnerable to timeouts #19732

issue hebasto opened this issue on August 15, 2020
  1. hebasto commented at 8:44 PM on August 15, 2020: member

    On master (3ab2582c7fe76d2839ab493512758d5601903c86) with this patch:

    --- a/src/net.cpp
    +++ b/src/net.cpp
    @@ -2868,7 +2868,7 @@ int64_t CConnman::PoissonNextSendInbound(int64_t now, int average_interval_secon
     
     int64_t PoissonNextSend(int64_t now, int average_interval_seconds)
     {
    -    return now + (int64_t)(log1p(GetRand(1ULL << 48) * -0.0000000000000035527136788 /* -1/2^48 */) * average_interval_seconds * -1000000.0 + 0.5);
    +    return now + (int64_t)(log1p(((1ULL << 48) - 1) * -0.0000000000000035527136788 /* -1/2^48 */) * average_interval_seconds * -1000000.0 + 0.5);
     }
     
     CSipHasher CConnman::GetDeterministicRandomizer(uint64_t id) const
    

    a bunch of functional tests fail due to the timeout:

    feature_notifications.py                | ✖ Failed  | 62 s
    interface_rest.py                       | ✖ Failed  | 63 s
    interface_zmq.py                        | ✖ Failed  | 64 s
    mempool_persist.py                      | ✖ Failed  | 62 s
    mempool_unbroadcast.py                  | ✖ Failed  | 32 s
    p2p_blocksonly.py                       | ✖ Failed  | 61 s
    p2p_feefilter.py                        | ✖ Failed  | 63 s
    p2p_getaddr_caching.py                  | ✖ Failed  | 62 s
    p2p_permissions.py                      | ✖ Failed  | 63 s
    p2p_segwit.py                           | ✖ Failed  | 69 s
    p2p_tx_download.py                      | ✖ Failed  | 75 s
    rpc_deprecated.py                       | ✖ Failed  | 62 s
    rpc_psbt.py                             | ✖ Failed  | 65 s
    rpc_psbt.py --descriptors               | ✖ Failed  | 67 s
    rpc_rawtransaction.py                   | ✖ Failed  | 64 s
    wallet_abandonconflict.py               | ✖ Failed  | 63 s
    wallet_balance.py                       | ✖ Failed  | 63 s
    wallet_basic.py                         | ✖ Failed  | 68 s
    wallet_basic.py --descriptors           | ✖ Failed  | 72 s
    wallet_bumpfee.py                       | ✖ Failed  | 64 s
    wallet_groups.py                        | ✖ Failed  | 62 s
    wallet_implicitsegwit.py                | ✖ Failed  | 62 s
    wallet_listreceivedby.py                | ✖ Failed  | 62 s
    wallet_listtransactions.py              | ✖ Failed  | 62 s
    wallet_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:

  2. hebasto renamed this:
    test: Functional tests are intrinsic vulnerable to timeouts
    qa: Functional tests are intrinsic vulnerable to timeouts
    on Nov 6, 2020
  3. rebroad commented at 10:11 AM on February 26, 2022: contributor

    https://github.com/bitcoin-core/gui/pull/559 - I'm also getting a test failing in this PR, probably due to a timeout.

  4. maflcko added the label Brainstorming on Jan 9, 2023
  5. maflcko added the label Tests on Jan 9, 2023
  6. Sjors commented at 9:52 AM on February 10, 2025: member

    Is #31833 a symptom of this?

  7. mzumsande commented at 6:44 PM on February 10, 2025: contributor

    Is #31833 a symptom of this?

    I don't think so, just a missing sync there.


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-14 15:14 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me