I see this in logs on server shutdown:

```
2022.01.30 02:51:22.856463 [ 755777 ] {} <Error> void DB::MergeTreeBackgroundExecutor<DB::MergeMutateRuntimeQueue>::routine(DB::TaskRuntimeDataPtr) [Queue = DB::MergeMutateRuntimeQueue]: Code: 236. DB::Exception: Cancelled merging parts.
```

but it's not an error.

Log level should be changed and it should not show stack trace.
bool need_execute_again = false;
    try
    {
        ALLOW_ALLOCATIONS_IN_SCOPE;
        need_execute_again = item->task->executeStep();
    }
    catch (...)
    {
        tryLogCurrentException(__PRETTY_FUNCTION__);
    }
    if (need_execute_again)
    {
        std::lock_guard guard(mutex);
        if (item->is_currently_deleting)
        {
            erase_from_active();
            
            item->task.reset();
            item->is_done.set();
            item = nullptr;
            return;
        }
        
        
        
        
        pending.push(std::move(item));
        erase_from_active();
        has_tasks.notify_one();
        item = nullptr;