From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp54.i.mail.ru (smtp54.i.mail.ru [217.69.128.34]) (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 490AE469719 for ; Tue, 10 Nov 2020 23:59:58 +0300 (MSK) Date: Tue, 10 Nov 2020 23:59:56 +0300 From: "Alexander V. Tikhonov" Message-ID: <20201110205956.GA25467@hpalx> References: <796ca0ba5fe99ec3c0b8370f1d955dc3c8f23bd2.1604706067.git.v.shpilevoy@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Tarantool-patches] [PATCH 1/1] raft: fix crash in worker fiber List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Vladislav Shpilevoy Cc: tarantool-patches@dev.tarantool.org Hi Vlad, I've checked all results in gitlab-ci, and no new degradations found [1], patch LGTM. [1] - https://gitlab.com/tarantool/tarantool/-/pipelines/213343120 On Sun, Nov 08, 2020 at 07:04:09PM +0100, Vladislav Shpilevoy wrote: > > diff --git a/src/box/raft.c b/src/box/raft.c > > index e1e60ce94..914b0d68f 100644 > > --- a/src/box/raft.c > > +++ b/src/box/raft.c > > @@ -682,11 +682,11 @@ raft_worker_f(va_list args) > > raft_worker_handle_broadcast(); > > is_idle = false; > > } > > + if (is_idle) { > > + assert(raft_is_fully_on_disk()); > > + fiber_yield(); > > + } > > fiber_sleep(0); > > - if (!is_idle) > > - continue; > > - assert(raft_is_fully_on_disk()); > > - fiber_yield(); > > } > > return 0; > > I changed this part just a little. Because it makes no sense to > sleep(0) right after a yield. Force pushed to the branch. > > ==================== > @@ -685,8 +685,9 @@ raft_worker_f(va_list args) > if (is_idle) { > assert(raft_is_fully_on_disk()); > fiber_yield(); > + } else { > + fiber_sleep(0); > } > - fiber_sleep(0); > } > return 0; > }