From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp53.i.mail.ru (smtp53.i.mail.ru [94.100.177.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id F35B9445327 for ; Sun, 12 Jul 2020 20:15:33 +0300 (MSK) References: <1594221263-6228-1-git-send-email-alyapunov@tarantool.org> <1594221263-6228-3-git-send-email-alyapunov@tarantool.org> From: Vladislav Shpilevoy Message-ID: <6ee9cb95-5fca-2707-d47e-8d1b4b2105f3@tarantool.org> Date: Sun, 12 Jul 2020 19:15:32 +0200 MIME-Version: 1.0 In-Reply-To: <1594221263-6228-3-git-send-email-alyapunov@tarantool.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Tarantool-patches] [PATCH 02/16] Check data_offset overflow in struct tuple List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aleksandr Lyapunov , tarantool-patches@dev.tarantool.org > diff --git a/test/box/huge_field_map_long.test.lua b/test/box/huge_field_map_long.test.lua > new file mode 100644 > index 0000000..6415615 > --- /dev/null > +++ b/test/box/huge_field_map_long.test.lua > @@ -0,0 +1,28 @@ > +env = require('test_run') > +test_run = env.new() > + > +s = box.schema.space.create('test', {engine = 'memtx'}) > +test_run:cmd("setopt delimiter ';'") > +function test() > + local t = {} > + local k = {} > + for i = 1,128 do > + local parts = {} > + for j = 0,127 do > + table.insert(parts, {i * 128 - j, 'uint'}) > + table.insert(t, 1) > + end > + if i == 1 then k = table.deepcopy(t) end > + s:create_index('test'..i, {parts = parts}) > + if i % 16 == 0 then > + s:replace(t) > + s:delete(k) > + end > + end > +end; > +test_run:cmd("setopt delimiter ''"); So this test would crash even without multikeys? With just too many field offsets? How long does it work? And why do you need to try to many combinations, if you know which one was going to crash before the patch?