https://clickhouse-test-reports.s3.yandex.net/8367/333ec2e496f4fe4addd22d5fa7c5c2a499099c57/fuzzer/fuzzer.log#fail1
{
public:
    KeyRef allocKey(const size_t row, const Columns & key_columns, StringRefs & keys)
    {
        const auto keys_size = key_columns.size();
        UInt16 sum_keys_size{};
        for (size_t j = 0; j < keys_size; ++j)
        {
            keys[j] = key_columns[j]->getDataAt(row);
            sum_keys_size += keys[j].size;
            if (!key_columns[j]->valuesHaveFixedSize())  
                sum_keys_size += sizeof(size_t) + 1;
        }
        auto place = arena.alloc(sum_keys_size + sizeof(sum_keys_size));
        auto key_start = place;
        memcpy(key_start, &sum_keys_size, sizeof(sum_keys_size));
        key_start += sizeof(sum_keys_size);
        for (size_t j = 0; j < keys_size; ++j)
        {
            if (!key_columns[j]->valuesHaveFixedSize())  
            {
                auto key_size = keys[j].size + 1;
                memcpy(key_start, &key_size, sizeof(size_t));
                key_start += sizeof(size_t);
                memcpy(key_start, keys[j].data, keys[j].size);
                key_start += keys[j].size;
                *key_start = '\0';
                ++key_start;