```
create table default.DFA(A Int64) Engine=MergeTree  order by tuple();
create table default.DFAD as default.DFA Engine=Distributed(test_shard_localhost, default, DFA)

 mkdir /var/lib/clickhouse/data/default/DFAD/shard1_replica1,shard1_replica2
chown -R clickhouse.clickhouse /var/lib/clickhouse/data/default/DFAD/shard1_replica1,shard1_replica2/

/etc/init.d/clickhouse-server restart


<Fatal> BaseDaemon: ########################################
<Fatal> BaseDaemon: (version 20.8.1.4436, build id: 30B7E2A4815769B9) (from thread 21305) (no query) Received signal Segmentation fault (11)
<Fatal> BaseDaemon: Address: NULL pointer. Access: read. Unknown si_code.
<Fatal> BaseDaemon: Stack trace: 0x17a585f5 0x1783c5de 0x17841b4e 0x17841ea0 0x1715a672 0xff3df97 0xff3e70a 0xff3d4a7 0xff3bae3 0x7f411ecd9fa3 0x7f411ebfb4

<Fatal> BaseDaemon: 3. DB::StorageDistributedDirectoryMonitor::createPool(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<cha
t&) @ 0x17a585f5 in /usr/bin/clickhouse
<Fatal> BaseDaemon: 4. DB::StorageDistributed::requireDirectoryMonitor(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>
td::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x1783c5de in /usr/bin/clickhouse
<Fatal> BaseDaemon: 5. DB::StorageDistributed::createDirectoryMonitors(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>
house
<Fatal> BaseDaemon: 6. DB::StorageDistributed::startup() @ 0x17841ea0 in /usr/bin/clickhouse
<Fatal> BaseDaemon: 7. ? @ 0x1715a672 in /usr/bin/clickhouse
<Fatal> BaseDaemon: 8. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0xff3df97 in /usr/bin/clickho

<Fatal> BaseDaemon: 9. ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>
```
: in(file_name)
        , decompressing_in(in)
        , block_in(decompressing_in, DBMS_TCP_PROTOCOL_VERSION)
        , log{&Poco::Logger::get("DirectoryMonitorBlockInputStream")}
    {
        readDistributedHeader(in, log);
        block_in.readPrefix();
        first_block = block_in.read();
        header = first_block.cloneEmpty();
    }
    String getName() const override { return "DirectoryMonitor"; }
protected:
    Block getHeader() const override { return header; }
    Block readImpl() override
    {
        if (first_block)
            return std::move(first_block);
        return block_in.read();
    }
    void readSuffix() override { block_in.readSuffix(); }
private:
    ReadBufferFromFile in;
    CompressedReadBuffer decompressing_in;
    NativeBlockInputStream block_in;
    Block first_block;
    Block header;
    Poco::Logger * log;
};
BlockInputStreamPtr StorageDistributedDirectoryMonitor::createStreamFromFile(const String & file_name)