https://s3.amazonaws.com/clickhouse-test-reports/0/10dc83b7a9c18228c4a4fc0dcfe6b18d2427462e/stress_test__debug__actions_.html

I found weird exception while investigating why ephemeral nodes were not removed for a long time:
https://pastila.nl/?00ec9776/d8858e442f8453f9b9e31a2f1da3cc8b
throw KeeperException("Cannot check if zookeeper root exists.", Coordination::Error::ZOPERATIONTIMEOUT);
        auto code = future.get().error;
        if (!(code == Coordination::Error::ZOK || code == Coordination::Error::ZNONODE))
            throw KeeperException(code, "/");
        if (code == Coordination::Error::ZNONODE)
            throw KeeperException("ZooKeeper root doesn't exist. You should create root node " + chroot + " before start.", Coordination::Error::ZNONODE);
    }
}
std::vector<ShuffleHost> ZooKeeper::shuffleHosts() const
{
    std::function<size_t(size_t index)> get_priority = get_priority_load_balancing.getPriorityFunc(get_priority_load_balancing.load_balancing, 0, hosts.size());
    std::vector<ShuffleHost> shuffle_hosts;
    for (size_t i = 0; i < hosts.size(); ++i)
    {
        ShuffleHost shuffle_host;
        shuffle_host.host = hosts[i];
        if (get_priority)
            shuffle_host.priority = get_priority(i);
        shuffle_host.randomize();
        shuffle_hosts.emplace_back(shuffle_host);
    }
    ::sort(
        shuffle_hosts.begin(), shuffle_hosts.end(),
        [](const ShuffleHost & lhs, const ShuffleHost & rhs)
        {
            return ShuffleHost::compare(lhs, rhs);
        });
    return shuffle_hosts;
}
ZooKeeper::ZooKeeper(const std::string & hosts_string, const std::string & identity_, int32_t session_timeout_ms_,