```
set skip_unavailable_shards=1;
select hostname(), * from cluster('{cluster}', system.one);

Connection failed at try №1,

Connection failed at try №2,

Connection failed at try №3,

Connection failed at try №1,

Connection failed at try №2,

Connection failed at try №3,
```

expected 3 try.
Connection & connection,
        const String & query_, const Block & header_, ContextPtr context_,
        const ThrottlerPtr & throttler, const Scalars & scalars_, const Tables & external_tables_, QueryProcessingStage::Enum stage_)
    : query_executor(connection, query_, header_, context_, throttler, scalars_, external_tables_, stage_)
{
    init();
}
RemoteBlockInputStream::RemoteBlockInputStream(
        std::vector<IConnectionPool::Entry> && connections,
        const String & query_, const Block & header_, ContextPtr context_,
        const ThrottlerPtr & throttler, const Scalars & scalars_, const Tables & external_tables_, QueryProcessingStage::Enum stage_)
    : query_executor(std::move(connections), query_, header_, context_, throttler, scalars_, external_tables_, stage_)
{
    init();
}
RemoteBlockInputStream::RemoteBlockInputStream(
        const ConnectionPoolWithFailoverPtr & pool,
        const String & query_, const Block & header_, ContextPtr context_,
        const ThrottlerPtr & throttler, const Scalars & scalars_, const Tables & external_tables_, QueryProcessingStage::Enum stage_)
    : query_executor(pool, query_, header_, context_, throttler, scalars_, external_tables_, stage_)
{
    init();
}
void RemoteBlockInputStream::init()
{
    query_executor.setProgressCallback([this](const Progress & progress) { progressImpl(progress); });
    query_executor.setProfileInfoCallback([this](const BlockStreamProfileInfo & info_) { info.setFrom(info_, true); });
    query_executor.setLogger(log);
}
void RemoteBlockInputStream::readPrefix()