From: Serge Petrenko <sergepetrenko@tarantool.org> To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>, tarantool-patches@dev.tarantool.org, avtikhon@tarantool.org Subject: Re: [Tarantool-patches] [PATCH 2/2] raft: fix crash on candidate cfg during WAL write Date: Tue, 10 Nov 2020 10:48:32 +0300 [thread overview] Message-ID: <5c4fd84d-c8a6-0814-4f05-f1838801c133@tarantool.org> (raw) In-Reply-To: <043d73e1-9a87-12e6-c09f-f977beffc6f8@tarantool.org> 10.11.2020 01:42, Vladislav Shpilevoy пишет: > Thanks for the review! > >>> diff --git a/test/replication/gh-5506-election-on-off.result b/test/replication/gh-5506-election-on-off.result >>> index 1a718396f..4fbc31986 100644 >>> --- a/test/replication/gh-5506-election-on-off.result >>> +++ b/test/replication/gh-5506-election-on-off.result >>> @@ -47,6 +47,91 @@ box.error.injection.set("ERRINJ_WAL_DELAY", false) >>> | - ok >>> | ... >>> +box.cfg{ \ >>> + election_mode = old_election_mode, \ >>> +} >>> + | --- >>> + | ... >>> + >>> +-- >>> +-- Another crash could happen when election mode was configured to be >>> +-- 'candidate' with a known leader, but there was a not finished WAL write. >>> +-- The node tried to start waiting for the leader death, even though with an >>> +-- active WAL write it should wait for its end first. >>> +-- >>> +box.schema.user.grant('guest', 'super') >> >> box.schema.user.grant('guest', 'replication') is enough. > I know. But I prefer using super, because it works always. I don't > want to think of the weakest possible rights which would fit. So > I usually add 'super' and forget about it. Ok. > >>> + | --- >>> + | ... >>> +test_run:cmd('create server replica with rpl_master=default,\ >>> + script="replication/replica.lua"') >>> + | --- >>> + | - true >>> + | ... >>> +test_run:cmd('start server replica with wait=True, wait_load=True') >>> + | --- >>> + | - true >>> + | ... >>> + >>> +test_run:switch('replica') >>> + | --- >>> + | - true >>> + | ... >>> +box.cfg{election_mode = 'voter'} >>> + | --- >>> + | ... >>> +box.error.injection.set("ERRINJ_WAL_DELAY_COUNTDOWN", 0) >>> + | --- >>> + | - ok >>> + | ... >>> + >>> +test_run:switch('default') >>> + | --- >>> + | - true >>> + | ... >>> +box.cfg{election_mode = 'candidate'} >>> + | --- >>> + | ... >>> +test_run:wait_cond(function() \ >>> + return box.info.election.leader ~= 0 \ >>> +end) >> >> Wouldn't it be simpler to wait for `box.info.election.state == 'leader'`? > I don't mind. > > ==================== > diff --git a/test/replication/gh-5506-election-on-off.result b/test/replication/gh-5506-election-on-off.result > index 4fbc31986..b8abd7ecd 100644 > --- a/test/replication/gh-5506-election-on-off.result > +++ b/test/replication/gh-5506-election-on-off.result > @@ -92,7 +92,7 @@ box.cfg{election_mode = 'candidate'} > | --- > | ... > test_run:wait_cond(function() \ > - return box.info.election.leader ~= 0 \ > + return box.info.election.state == 'leader' \ > end) > | --- > | - true > diff --git a/test/replication/gh-5506-election-on-off.test.lua b/test/replication/gh-5506-election-on-off.test.lua > index bb89477d1..476b00ec0 100644 > --- a/test/replication/gh-5506-election-on-off.test.lua > +++ b/test/replication/gh-5506-election-on-off.test.lua > @@ -47,7 +47,7 @@ box.error.injection.set("ERRINJ_WAL_DELAY_COUNTDOWN", 0) > test_run:switch('default') > box.cfg{election_mode = 'candidate'} > test_run:wait_cond(function() \ > - return box.info.election.leader ~= 0 \ > + return box.info.election.state == 'leader' \ > end) > > test_run:switch('replica') Thanks for the changes! LGTM. -- Serge Petrenko
next prev parent reply other threads:[~2020-11-10 7:48 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-11-07 16:45 [Tarantool-patches] [PATCH 0/2] Raft crash on re-enablence Vladislav Shpilevoy 2020-11-07 16:45 ` [Tarantool-patches] [PATCH 1/2] raft: fix crash on sm restart during WAL write Vladislav Shpilevoy 2020-11-09 10:16 ` Serge Petrenko 2020-11-07 16:45 ` [Tarantool-patches] [PATCH 2/2] raft: fix crash on candidate cfg " Vladislav Shpilevoy 2020-11-09 10:19 ` Serge Petrenko 2020-11-09 22:42 ` Vladislav Shpilevoy 2020-11-10 7:48 ` Serge Petrenko [this message] 2020-11-10 21:09 ` [Tarantool-patches] [PATCH 0/2] Raft crash on re-enablence Alexander V. Tikhonov 2020-11-10 22:05 ` Vladislav Shpilevoy
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=5c4fd84d-c8a6-0814-4f05-f1838801c133@tarantool.org \ --to=sergepetrenko@tarantool.org \ --cc=avtikhon@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH 2/2] raft: fix crash on candidate cfg during WAL write' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox