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.
{
    auto table_id = getStorageID();
    getContext()->checkTableCanBeDropped(table_id.database_name, table_id.table_name, getTotalActiveSizeInBytes());
}
void StorageMergeTree::drop()
{
    shutdown();
    
    if (isStaticStorage())
        return;
    dropAllData();
}
void StorageMergeTree::truncate(const ASTPtr &, const StorageMetadataPtr &, ContextPtr local_context, TableExclusiveLockHolder &)
{
    {
        
        
        auto merge_blocker = stopMergesAndWait();
        auto parts_to_remove = getVisibleDataPartsVector(local_context);
        removePartsFromWorkingSet(local_context->getCurrentTransaction().get(), parts_to_remove, true);
        LOG_INFO(log, "Removed {} parts.", parts_to_remove.size());
    }
    clearOldMutations(true);
    clearOldPartsFromFilesystem();
}
void StorageMergeTree::alter(