https://clickhouse-test-reports.s3.yandex.net/19475/02d28c1f9b9558ca5af267167a542819b9e1d061/fuzzer_debug/report.html#fail1
{
    static constexpr const float reserve_coef = 1.2;
    Blocks out_blocks;
    Block empty_out = block.cloneEmpty();
    {
        std::lock_guard lock(mutex);
        if (block)
        {
            current_bytes += block.bytes();
            buffer.emplace_back(std::move(block));
            
            if (current_bytes < max_bytes)
                return empty_out;
        }
        
        out_blocks.swap(buffer);
        buffer.reserve(out_blocks.size() * reserve_coef);
        current_bytes = 0;
    }
    if (size_t size = out_blocks.size())
    {
        if (size == 1)
            return out_blocks[0];
        return mergeBlocks(std::move(out_blocks));
    }
    return {};
}
Block SortedBlocksBuffer::mergeBlocks(Blocks && blocks) const