qa: Functional tests are intrinsic vulnerable to timeouts #19732

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

    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:

  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. MarcoFalke added the label Brainstorming on Jan 9, 2023
  5. MarcoFalke added the label Tests on Jan 9, 2023

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: 2024-09-29 01:12 UTC

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