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
return true;
        if (state->code)
            throw KeeperException(static_cast<Coordination::Error>(state->code.load(std::memory_order_seq_cst)), path);
        if (state->event_type == Coordination::DELETED)
            return true;
    } while (!condition || !condition());
    return false;
}
void ZooKeeper::waitForEphemeralToDisappearIfAny(const std::string & path)
{
    zkutil::EventPtr eph_node_disappeared = std::make_shared<Poco::Event>();
    String content;
    if (!tryGet(path, content, nullptr, eph_node_disappeared))
        return;
    int32_t timeout_ms = 2 * session_timeout_ms;
    if (!eph_node_disappeared->tryWait(timeout_ms))
        throw DB::Exception(DB::ErrorCodes::LOGICAL_ERROR,
                            "Ephemeral node {} still exists after {}s, probably it's owned by someone else. "
                            "Either session_timeout_ms in client's config is different from server's config or it's a bug. "
                            "Node data: '{}'", path, timeout_ms / 1000, content);
}
ZooKeeperPtr ZooKeeper::startNewSession() const
{
    return std::make_shared<ZooKeeper>(hosts, identity, session_timeout_ms, operation_timeout_ms, chroot, implementation, zk_log, get_priority_load_balancing);
}
bool ZooKeeper::expired()
{
    return impl->isExpired();
}
Int64 ZooKeeper::getClientID()