https://github.com/ClickHouse/ClickHouse/blob/055a6563d756e3535774fdd1cee5b83d7b798801/src/Common/LRUCache.h#L283

If `insert` throws exception (bad_alloc or similar), the Cell will be in incorrect state.

Found by @nvartolomei 
{
        auto it = cells.find(key);
        if (it == cells.end())
        {
            return MappedPtr();
        }
        Cell & cell = it->second;
        
        queue.splice(queue.end(), queue, cell.queue_iterator);
        return cell.value;
    }
    void setImpl(const Key & key, const MappedPtr & mapped, [[maybe_unused]] std::lock_guard<std::mutex> & cache_lock)