https://clickhouse-test-reports.s3.yandex.net/8367/333ec2e496f4fe4addd22d5fa7c5c2a499099c57/fuzzer/fuzzer.log#fail1
{
        UInt16 sz;
        readBinary(sz, buf);
        char * data = nullptr;
        if constexpr (std::is_same_v<A, SmallObjectPool>)
            data = arena.alloc();
        else
            data = arena.alloc(sz + sizeof(sz));
        memcpy(data, &sz, sizeof(sz));
        buf.read(data + sizeof(sz), sz);
        key = KeyRef(data);
    }
    void ignoreKey(ReadBuffer & buf) const
    {
        UInt16 sz;
        readBinary(sz, buf);
        buf.ignore(sz);
    }
    size_t size() const
    {
        return arena.size();
    }
private:
    A arena;
};
using TemporalComplexKeysPool = ComplexKeysPoolImpl<Arena>;
using ComplexKeysPool = ComplexKeysPoolImpl<ArenaWithFreeLists>;
struct KeyDeleter
{
    KeyDeleter(ComplexKeysPool & keys_pool_) : keys_pool(keys_pool_) {}