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 (const DiskPtr & disk : getStoragePolicy()->getDisks())
        for (const auto it = disk->iterateDirectory(fs::path(relative_data_path) / "detached/"); it->isValid(); it->next())
        {
            const auto part_info = MergeTreePartInfo::tryParsePartName(it->name(), format_version);
            if (!part_info || part_info->partition_id != actual_part_info.partition_id)
                continue;
            const String part_old_name = part_info->getPartName();
            const String part_path = fs::path("detached") / part_old_name;
            const VolumePtr volume = std::make_shared<SingleDiskVolume>("volume_" + part_old_name, disk);
            
            MergeTreeData::MutableDataPartPtr part = createPart(part_new_name, actual_part_info, volume, part_path);
            try
            {
                part->loadColumnsChecksumsIndexes(true, true);
            }
            catch (const Exception&)
            {
                
                
                continue;
            }
            if (entry.part_checksum == part->checksums.getTotalChecksumHex())
            {
                part->modification_time = disk->getLastModified(part->getFullRelativePath()).epochTime();
                return part;
            }
        }
    return {};
}
bool StorageReplicatedMergeTree::executeLogEntry(LogEntry & entry)