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 
```
return 0;
            }
            rh.reset(new NetinfoRequestHandler());
        } else if (gArgs.GetBoolArg("-generate", false)) {
            const UniValue getnewaddress{GetNewAddress()};
            const UniValue& error{find_value(getnewaddress, "error")};
            if (error.isNull()) {
                SetGenerateToAddressArgs(find_value(getnewaddress, "result").get_str(), args);
                rh.reset(new GenerateToAddressRequestHandler());
            } else {
                ParseError(error, strPrint, nRet);
            }
        } else if (gArgs.GetBoolArg("-addrinfo", false)) {
            rh.reset(new AddrinfoRequestHandler());
        } else {
            rh.reset(new DefaultRequestHandler());
            if (args.size() < 1) {
                throw std::runtime_error("too few parameters (need at least command)");
            }
            method = args[0];
            args.erase(args.begin()); 
        }
        if (nRet == 0) {
            
            std::optional<std::string> wallet_name{};
            if (gArgs.IsArgSet("-rpcwallet")) wallet_name = gArgs.GetArg("-rpcwallet", "");
            const UniValue reply = ConnectAndCallRPC(rh.get(), method, args, wallet_name);
            
            UniValue result = find_value(reply, "result");
            const UniValue& error = find_value(reply, "error");