Most recent failure [on master](https://cirrus-ci.com/task/6073953614561280) (https://github.com/bitcoin/bitcoin/commit/567670bec5ecf9bc252e91370382be53fd81ccee):
```bash
 test  2021-06-23T11:18:18.969000Z TestFramework.node0 (DEBUG): Node stopped 
 test  2021-06-23T11:18:18.969000Z TestFramework.bitcoincli (DEBUG): Running bitcoin-cli ['-rpcwait', '-rpcwaittimeout=5', 'echo'] 
 test  2021-06-23T11:18:23.001000Z TestFramework (ERROR): Assertion failed 
                                   Traceback (most recent call last):
                                     File "/tmp/cirrus-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_framework.py", line 128, in main
                                       self.run_test()
                                     File "/tmp/cirrus-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/interface_bitcoin_cli.py", line 257, in run_test
                                       assert_greater_than_or_equal(time.time(), start_time + 5)
                                     File "/tmp/cirrus-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/util.py", line 61, in assert_greater_than_or_equal
                                       raise AssertionError("%s < %s" % (str(thing1), str(thing2)))
                                   AssertionError: 1624447103.0015192 < 1624447103.969648
 test  2021-06-23T11:18:23.004000Z TestFramework (DEBUG): Closing down network thread 
 test  2021-06-23T11:18:23.055000Z TestFramework (INFO): Stopping nodes 
```
const int64_t conn_time{peer["conntime"].get_int64()};
                const int64_t last_blck{peer["last_block"].get_int64()};
                const int64_t last_recv{peer["lastrecv"].get_int64()};
                const int64_t last_send{peer["lastsend"].get_int64()};
                const int64_t last_trxn{peer["last_transaction"].get_int64()};
                const double min_ping{peer["minping"].isNull() ? -1 : peer["minping"].get_real()};
                const double ping{peer["pingtime"].isNull() ? -1 : peer["pingtime"].get_real()};
                const std::string addr{peer["addr"].get_str()};
                const std::string age{conn_time == 0 ? "" : ToString((m_time_now - conn_time) / 60)};
                const std::string sub_version{peer["subver"].get_str()};
                const bool is_bip152_hb_from{peer["bip152_hb_from"].get_bool()};
                const bool is_bip152_hb_to{peer["bip152_hb_to"].get_bool()};
                m_peers.push_back({addr, sub_version, conn_type, network, age, min_ping, ping, last_blck, last_recv, last_send, last_trxn, peer_id, mapped_as, version, is_bip152_hb_from, is_bip152_hb_to, is_block_relay, is_outbound});
                m_max_addr_length = std::max(addr.length() + 1, m_max_addr_length);
                m_max_age_length = std::max(age.length(), m_max_age_length);
                m_max_id_length = std::max(ToString(peer_id).length(), m_max_id_length);
                m_is_asmap_on |= (mapped_as != 0);
            }
        }
        
        std::string result{strprintf("%s %s%s - %i%s\n\n", PACKAGE_NAME, FormatFullVersion(), ChainToString(), networkinfo["protocolversion"].get_int(), networkinfo["subversion"].get_str())};
        
        if (DetailsRequested() && !m_peers.empty()) {
            std::sort(m_peers.begin(), m_peers.end());
            result += strprintf("<->   type   net  mping   ping send recv  txn  blk  hb %*s ", m_max_age_length, "age");
            if (m_is_asmap_on) result += " asmap ";
            result += strprintf("%*s %-*s%s\n", m_max_id_length, "id", IsAddressSelected() ? m_max_addr_length : 0, IsAddressSelected() ? "address" : "", IsVersionSelected() ? "version" : "");
            for (const Peer& peer : m_peers) {
                std::string version{ToString(peer.version) + peer.sub_version};
                result += strprintf(