From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp57.i.mail.ru (smtp57.i.mail.ru [217.69.128.37]) (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 C50C8469710 for ; Fri, 8 May 2020 01:37:24 +0300 (MSK) Date: Thu, 7 May 2020 22:37:23 +0000 From: Nikita Pettik Message-ID: <20200507223723.GC13970@tarantool.org> References: <5012bd8eb07b5379eb70aa777402c7cd566a3b34.1588273848.git.korablev@tarantool.org> <959a3f72-6b95-30b1-c838-3b9e2bebc04c@tarantool.org> <20200507130256.GB11724@tarantool.org> <20200507141653.GA7782@atlas> <5c69fa0a-3ec3-95d7-b286-ce58e327bc10@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <5c69fa0a-3ec3-95d7-b286-ce58e327bc10@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH 2/2] vinyl: drop wasted runs in case range recovery fails List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Vladislav Shpilevoy Cc: tarantool-patches@dev.tarantool.org On 07 May 23:47, Vladislav Shpilevoy wrote: > On 07/05/2020 16:16, Konstantin Osipov wrote: > > * Nikita Pettik [20/05/07 16:05]: > >>> > >>> Reference counter looks like not a good information channel. > >>> Could you use run->fd to check whether the run was really recovered? > >>> vy_run_recover() leaves it -1, when fails. > >>> > >>> Otherwise this won't work the second when we will ref the run anywhere > >>> else. > >> > >> Firstly, lsm at this point is not restored, ergo it is not functional > >> and run can't be refed somewehere else - it's life span is clearly > >> defined. Secondly, the problem is not in the last run (which failed to > >> recover) but in those which are already recovered at the moment. > >> Recovered runs feature valid fds. Finally, slice recover may fail > >> not only in vy_run_recover(), but also due to oom, broken vylog etc. > >> All these scenarios lead to the same situation. > > > > It should be partially restored in case of force_recovery. It's > > another bug force_recovery is not respected, I've been sending a > > fix to the list a few months ago. > > Is there a test case and an issue on that? Nikita, could you please > find it/file it/confirm it/reject it? I've found this issue: https://github.com/tarantool/tarantool/issues/4474