From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp50.i.mail.ru (smtp50.i.mail.ru [94.100.177.110]) (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 38FAC42F4AD for ; Wed, 10 Jun 2020 18:27:02 +0300 (MSK) Date: Wed, 10 Jun 2020 15:27:01 +0000 From: Nikita Pettik Message-ID: <20200610152701.GA16393@tarantool.org> References: <7407b62139349ee3904a674490a6222b0c960a1c.1591292549.git.korablev@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <7407b62139349ee3904a674490a6222b0c960a1c.1591292549.git.korablev@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH] vinyl: rotate mem during index build on demand List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tarantool-patches@dev.tarantool.org Cc: v.shpilevoy@tarantool.org On 04 Jun 20:49, Nikita Pettik wrote: > Meanwhile in 17f6af7dc the similar problem has been fixed, still it may > appear that in-memory level of secondary index being constructed has > lagging memory generation (in other words, it's values is less than > the value of current global generation). Such situation can be achieved > if yield which is required to check uniqueness of value being inserted > is too long. In this time gap other space may trigger dump process > bumping global memory generation counter, but dump itself is still not > yet scheduled. > > So to get rid of generations mismatch, let's rotate in-memory level > after yield on demand. > > Closes #5042 > --- > Branch: https://github.com/tarantool/tarantool/tree/np/gh-5042-rotate-mem-after-yield > Issue: https://github.com/tarantool/tarantool/issues/5042 > > @ChangeLog: > * Fix crash due to triggered dump process during secondary index creation (gh-5042). > Pushed without test to master, 2.4, 2.3 and 1.10. Changelogs are updated correspondingly. Test will be pushed as a follow-up as soon as it gets second ack.