https://clickhouse-test-reports.s3.yandex.net/8367/333ec2e496f4fe4addd22d5fa7c5c2a499099c57/fuzzer/fuzzer.log#fail1
const KeyRefs & keys_in,
    const PaddedPODArray<Metadata> & metadata,
    const size_t begin)
{
    std::unique_lock lock(rw_lock);
    KeyRefs keys(keys_in.size());
    for (size_t i = 0; i < keys_in.size(); ++i)
        keys[i] = keys_pool.copyKeyFrom(keys_in[i]);
    return append(keys, Attributes{}, metadata, begin);
}
size_t SSDComplexKeyCachePartition::appendBlock(
    const Columns & key_columns, const DataTypes & ,
    const Attributes & new_attributes, const PaddedPODArray<Metadata> & metadata, const size_t begin)
{
    std::unique_lock lock(rw_lock);
    if (!new_attributes.empty() && new_attributes.size() != attributes_structure.size())
        throw Exception{"Wrong columns number in block.", ErrorCodes::BAD_ARGUMENTS};
    const auto keys_size = key_columns.size();
    KeyRefs keys(key_columns.front()->size());
    {
        StringRefs tmp_keys_refs(keys_size);
        for (size_t i = 0; i < key_columns.front()->size(); ++i)
            keys[i] = keys_pool.allocKey(i, key_columns, tmp_keys_refs);
    }
    return append(keys, new_attributes, metadata, begin);
}
size_t SSDComplexKeyCachePartition::append(