Some queries to distributed table fail with  this error
`
2021.03.10 09:55:07.000828 [ 8466 ] {88a44f07-ba05-443a-88cc-14fd260b8297} <Error> executeQuery: Code: 100, e.displayText() = DB::Exception: Unknown packet 97 from server node2-dal13-sl.systems:9000 (version 21.2.5.5 (official build)) (from 54.208.201.221:35979) (in query: SELECT domain AS domain, url AS url, uri AS uri, ip AS ip, method AS method, status_code AS status_code, conviction__rule_name AS rule_name, country AS country, computed_action AS action, conviction__rule_id AS rule_id, id AS id, ua AS ua, ua_parsed__client AS ua_parsed_client, organization AS organization, toInt64(timestamp) AS timestamp, conviction__reference_id AS reference_id, result AS result, traffic_type AS traffic_type FROM default.logs WHERE (((bitTest(traffic_type_query, 1) = 1)) AND domain='82deae48a65148a881b4bdfbd4c5deec.stackpathdns.com' AND timestamp>=1615283645000 AND timestamp<1615370045000) ORDER BY timestamp DESC LIMIT 100 FORMAT JSONCompact ), Stack trace (when copying this message, always include the lines below):

0. DB::Connection::receivePacket(std::__1::function<void (Poco::Net::Socket&)>) @ 0xf517cc5 in /usr/bin/clickhouse
1. DB::MultiplexedConnections::receivePacketUnlocked(std::__1::function<void (Poco::Net::Socket&)>) @ 0xf525b75 in /usr/bin/clickhouse
2. DB::MultiplexedConnections::drain() @ 0xf5262b0 in /usr/bin/clickhouse
3. DB::RemoteQueryExecutor::finish(std::__1::unique_ptr<DB::RemoteQueryExecutorReadContext, std::__1::default_delete<DB::RemoteQueryExecutorReadContext> >*) @ 0xe6ad867 in /usr/bin/clickhouse
4. DB::PipelineExecutor::tryAddProcessorToStackIfUpdated(DB::ExecutingGraph::Edge&, std::__1::queue<DB::ExecutingGraph::Node*, std::__1::deque<DB::ExecutingGraph::Node*, std::__1::allocator<DB::ExecutingGraph::Node*> > >&, std::__1::queue<DB::ExecutingGraph::Node*, std::__1::deque<DB::ExecutingGraph::Node*, std::__1::allocator<DB::ExecutingGraph::Node*> > >&, unsigned long) @ 0xf63ad1c in /usr/bin/clickhouse
5. DB::PipelineExecutor::prepareProcessor(unsigned long, unsigned long, std::__1::queue<DB::ExecutingGraph::Node*, std::__1::deque<DB::ExecutingGraph::Node*, std::__1::allocator<DB::ExecutingGraph::Node
*> > >&, std::__1::queue<DB::ExecutingGraph::Node*, std::__1::deque<DB::ExecutingGraph::Node*, std::__1::allocator<DB::ExecutingGraph::Node*> > >&, std::__1::unique_lock<std::__1::mutex>) @ 0xf63b4e9 in
 /usr/bin/clickhouse
6. DB::PipelineExecutor::executeStepImpl(unsigned long, unsigned long, std::__1::atomic<bool>*) @ 0xf63e9f0 in /usr/bin/clickhouse
7. ? @ 0xf642f26 in /usr/bin/clickhouse
8. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x84f700f in /usr/bin/clickhouse
9. ? @ 0x84faaa3 in /usr/bin/clickhouse
10. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
11. clone @ 0xfe96d in /usr/lib64/libc-2.17.so
`
you can see query example in the error message
default.logs is a distributed table. We have 3 nodes cluster running clickhouse-server version 21.2.5.5 




{
    
    epoll_event events[3];
    events[0].data.fd = events[1].data.fd = events[2].data.fd = -1;
    int num_events = epoll.getManyReady(3, events, false);
    bool is_socket_ready = false;
    bool is_pipe_alarmed = false;
    bool has_timer_alarm = false;
    for (int i = 0; i < num_events; ++i)
    {
        if (events[i].data.fd == connection_fd)
            is_socket_ready = true;
        if (events[i].data.fd == timer.getDescriptor())
            has_timer_alarm = true;
        if (events[i].data.fd == pipe_fd[0])
            is_pipe_alarmed = true;
    }
    if (is_pipe_alarmed)
        return false;
    if (has_timer_alarm && !is_socket_ready)
    {
        
        timer.drain();
        throw NetException("Timeout exceeded", ErrorCodes::SOCKET_TIMEOUT);
    }
    return true;
}
void RemoteQueryExecutorReadContext::setTimer() const