I have a few SummingMergeTree tables created many years ago.
20.12 crashes trying to delete empty parts with the message: `Unexpected part name: 201907_44_45_999999999`
```
2020.12.28 20:57:39.962301 [ 21808 ] {} <Trace> db.table (ReplicatedMergeTreeCleanupThread): Checking 100 blocks (100 are not cached) to clear old ones from ZooKeeper.
2020.12.28 20:57:39.972444 [ 21808 ] {} <Trace> db.table: Will try to insert a log entry to DROP_RANGE for part: 20190730_20190731_44_45_1
2020.12.28 20:57:39.984770 [ 21808 ] {} <Debug> db.table: Waiting for sde798 to pull log-0000514194 to queue
2020.12.28 20:57:39.991527 [ 21812 ] {} <Debug> db.table (ReplicatedMergeTreeQueue): Pulling 1 entries to queue: log-0000514194 - log-0000514194
2020.12.28 20:57:39.997144 [ 21812 ] {} <Error> db.table (ReplicatedMergeTreeQueue): Code: 233, e.displayText() = DB::Exception: Unexpected part name: 201907_44_45_999999999, Stack trace (when copying this message, always include the lines below):
0. DB::MergeTreePartInfo::fromPartName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, StrongTypedef<unsigned int, DB::MergeTreeDataFormatVersionTag>) @ 0xe5ae893 in /usr/bin/clickhouse
1. DB::ActiveDataPartSet::add(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basi
c_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*) @ 0xe462e59 in /usr/bin/clickhouse
2. DB::ReplicatedMergeTreeQueue::insertUnlocked(std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry> const&, std::__1::optional<long>&, std::__1::lock_guard<std::__1::mutex>&) @ 0xe640ccd in /usr/bin/clickhouse
3. DB::ReplicatedMergeTreeQueue::pullLogsToQueue(std::__1::shared_ptr<zkutil::ZooKeeper>, std::__1::function<void (Coordination::WatchResponse const&)>) @ 0xe648d45 in /usr/bin/clickhouse
4. DB::StorageReplicatedMergeTree::queueUpdatingTask() @ 0xe312111 in /usr/bin/clickhouse
5. DB::BackgroundSchedulePoolTaskInfo::execute() @ 0xda48492 in /usr/bin/clickhouse
6. DB::BackgroundSchedulePool::threadFunction() @ 0xda4a8c2 in /usr/bin/clickhouse
7. ? @ 0xda4bb41 in /usr/bin/clickhouse
8. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x7dc5b3d in /usr/bin/clickhouse
9. ? @ 0x7dc96f3 in /usr/bin/clickhouse
10. start_thread @ 0x74a4 in /lib/x86_64-linux-gnu/libpthread-2.24.so
11. clone @ 0xe8d0f in /lib/x86_64-linux-gnu/libc-2.24.so
 (version 20.12.5.14 (official build))

2020.12.28 20:57:39.997247 [ 21786 ] {} <Trace> BaseDaemon: Received signal -1
2020.12.28 20:57:39.997262 [ 21786 ] {} <Fatal> BaseDaemon: (version 20.12.5.14 (official build), build id: BEE6512D29AA78DB) (from thread 21812) Terminate called for uncaught exception:
Code: 233, e.displayText() = DB::Exception: Unexpected part name: 201907_44_45_999999999, Stack trace (when copying this message, always include the lines below):

0. DB::MergeTreePartInfo::fromPartName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, StrongTypedef<unsigned int, DB::MergeTreeDataFormatVersionTag>) @ 0xe5ae893 in /usr/bin/clickhouse
1. DB::ActiveDataPartSet::add(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basi
c_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*) @ 0xe462e59 in /usr/bin/clickhouse
2. DB::ReplicatedMergeTreeQueue::insertUnlocked(std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry> const&, std::__1::optional<long>&, std::__1::lock_guard<std::__1::mutex>&) @ 0xe640ccd in /usr

2020.12.28 20:57:39.997283 [ 21786 ] {} <Trace> BaseDaemon: Received signal 6
2020.12.28 20:57:39.997365 [ 22052 ] {} <Fatal> BaseDaemon: ########################################
2020.12.28 20:57:39.997383 [ 22052 ] {} <Fatal> BaseDaemon: (version 20.12.5.14 (official build), build id: BEE6512D29AA78DB) (from thread 21812) (no query) Received signal Aborted (6)
2020.12.28 20:57:39.997391 [ 22052 ] {} <Fatal> BaseDaemon:
2020.12.28 20:57:39.997403 [ 22052 ] {} <Fatal> BaseDaemon: Stack trace: 0x7f77e1438fff 0x7f77e143a42a 0x7f18e56 0x124170d3 0x1241707c 0xe64a296 0xe312111 0xda48492 0xda4a8c2 0xda4bb41 0x7dc5b3d 0x7dc96f3 0x7f77e1bb84a4 0x7f77e14eed0f
2020.12.28 20:57:39.997425 [ 22052 ] {} <Fatal> BaseDaemon: 2. raise @ 0x32fff in /lib/x86_64-linux-gnu/libc-2.24.so
2020.12.28 20:57:39.997433 [ 22052 ] {} <Fatal> BaseDaemon: 3. abort @ 0x3442a in /lib/x86_64-linux-gnu/libc-2.24.so
2020.12.28 20:57:39.997443 [ 22052 ] {} <Fatal> BaseDaemon: 4. ? @ 0x7f18e56 in /usr/bin/clickhouse
2020.12.28 20:57:39.997449 [ 22052 ] {} <Fatal> BaseDaemon: 5. ? @ 0x124170d3 in ?
2020.12.28 20:57:39.997463 [ 22052 ] {} <Fatal> BaseDaemon: 6. std::terminate() @ 0x1241707c in ?
2020.12.28 20:57:39.997477 [ 22052 ] {} <Fatal> BaseDaemon: 7. DB::ReplicatedMergeTreeQueue::pullLogsToQueue(std::__1::shared_ptr<zkutil::ZooKeeper>, std::__1::function<void (Coordination::WatchResponse const&)>) @ 0xe64a296 in /usr/bin/clickhouse
2020.12.28 20:57:39.997485 [ 22052 ] {} <Fatal> BaseDaemon: 8. DB::StorageReplicatedMergeTree::queueUpdatingTask() @ 0xe312111 in /usr/bin/clickhouse
2020.12.28 20:57:39.997493 [ 22052 ] {} <Fatal> BaseDaemon: 9. DB::BackgroundSchedulePoolTaskInfo::execute() @ 0xda48492 in /usr/bin/clickhouse
2020.12.28 20:57:39.997500 [ 22052 ] {} <Fatal> BaseDaemon: 10. DB::BackgroundSchedulePool::threadFunction() @ 0xda4a8c2 in /usr/bin/clickhouse
2020.12.28 20:57:39.997506 [ 22052 ] {} <Fatal> BaseDaemon: 11. ? @ 0xda4bb41 in /usr/bin/clickhouse
2020.12.28 20:57:39.997515 [ 22052 ] {} <Fatal> BaseDaemon: 12. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x7dc5b3d in /usr/bin/clickhouse
2020.12.28 20:57:39.997521 [ 22052 ] {} <Fatal> BaseDaemon: 13. ? @ 0x7dc96f3 in /usr/bin/clickhouse
2020.12.28 20:57:39.997531 [ 22052 ] {} <Fatal> BaseDaemon: 14. start_thread @ 0x74a4 in /lib/x86_64-linux-gnu/libpthread-2.24.so
```
if (MergeTreeDataPartChecksums::isBadChecksumsErrorCode(e.code()))
            {
                transaction.rollback();
                ProfileEvents::increment(ProfileEvents::DataAfterMergeDiffersFromReplica);
                LOG_ERROR(log, "{}. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. 9. Part format related settings like 'enable_mixed_granularity_parts' are different on different replicas. We will download merged part from replica to force byte-identical result.", getCurrentExceptionMessage(false));
                write_part_log(ExecutionStatus::fromCurrentException());
                tryRemovePartImmediately(std::move(part));
                
                
                return false;
            }
            throw;
        }
        /** Removing old parts from ZK and from the disk is delayed - see ReplicatedMergeTreeCleanupThread, clearOldParts.
          */
        /** With `ZSESSIONEXPIRED` or `ZOPERATIONTIMEOUT`, we can inadvertently roll back local changes to the parts.
          * This is not a problem, because in this case the merge will remain in the queue, and we will try again.
          */
        merge_selecting_task->schedule();
        ProfileEvents::increment(ProfileEvents::ReplicatedPartMerges);
        write_part_log({});
        return true;
    }
    catch (...)
    {
        write_part_log(ExecutionStatus::fromCurrentException());
        throw;
    }
}
bool StorageReplicatedMergeTree::tryExecutePartMutation(const StorageReplicatedMergeTree::LogEntry & entry)