For some reasons when we delete a MergeTree Part in atomic way something may go wrong - and leave the `delete_tmp_*` folder or it's part on disk. This may lead to a disk space consumption over time.

It's suggested to delete this folders at least at server start-up. Current solution with `clearOldTemporaryDirectories()` doesn't work because this method is called periodically from a thread without any locks or advisory on folders - it may cause the race conditions.
for (PartDescriptionPtr & part_desc : parts_to_add)
    {
        if (adding_parts_active_set.getContainingPart(part_desc->new_part_info).empty())
        {
            
            
            
            
            bool need_check = true;
            if (auto * replicated_src_table = typeid_cast<StorageReplicatedMergeTree *>(source_table.get()))
            {
                String src_replica = replicated_src_table->findReplicaHavingPart(part_desc->src_part_name, false);
                if (!src_replica.empty())
                {
                    LOG_DEBUG(log, "Found part {} on replica {} of source table, will not check part {} required for {}",
                              part_desc->src_part_name, src_replica, part_desc->new_part_name, entry.znode_name);
                    need_check = false;
                }
            }
            if (need_check)
            {
                LOG_DEBUG(log, "Will check part {} required for {}, because no replicas have it (including replicas of source table)",
                          part_desc->new_part_name, entry.znode_name);
                enqueuePartForCheck(part_desc->new_part_name);
            }
            throw Exception(ErrorCodes::NO_REPLICA_HAS_PART,
                            "Not found part {} (or part covering it) neither source table neither remote replicas",
                            part_desc->new_part_name);
        }
    }