And waits for them. That's pointless.
{
    
    if (queue.actions_blocker.isCancelled())
        return false;
    
    ReplicatedMergeTreeQueue::SelectedEntryPtr selected_entry = selectQueueEntry();
    if (!selected_entry)
        return false;
    
    if (selected_entry->log_entry->type == LogEntry::GET_PART)
    {
        executor.execute({[this, selected_entry] () mutable
        {
            return processQueueEntry(selected_entry);
        }, PoolType::FETCH});
        return true;
    }
    else
    {
        executor.execute({[this, selected_entry] () mutable
        {
            return processQueueEntry(selected_entry);
        }, PoolType::MERGE_MUTATE});
        return true;
    }
}
bool StorageReplicatedMergeTree::canExecuteFetch(const ReplicatedMergeTreeLogEntry & entry, String & disable_reason) const