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.
{
    setThreadName(name.c_str());
    DENY_ALLOCATIONS_IN_SCOPE;
    while (true)
    {
        try
        {
            TaskRuntimeDataPtr item;
            {
                std::unique_lock lock(mutex);
                has_tasks.wait(lock, [this](){ return !pending.empty() || shutdown; });
                if (shutdown)
                    break;
                item = std::move(pending.pop());
                active.push_back(item);
            }
            routine(std::move(item));
        }
        catch (...)
        {
            tryLogCurrentException(__PRETTY_FUNCTION__);
        }
    }
}
template class MergeTreeBackgroundExecutor<MergeMutateRuntimeQueue>;
template class MergeTreeBackgroundExecutor<OrdinaryRuntimeQueue>;
}