From: Sergey Bronnikov <sergeyb@tarantool.org>
To: "Alexander V. Tikhonov" <avtikhon@tarantool.org>
Cc: Oleg Piskunov <o.piskunov@tarantool.org>,
tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH v1] test: fix flaky replication/skip_conflict_row test
Date: Wed, 29 Apr 2020 14:53:50 +0300 [thread overview]
Message-ID: <20200429115350.GA26469@pony.bronevichok.ru> (raw)
In-Reply-To: <8b8bef3060a2a3a78ab8b6de1d99443d0545e3b4.1587942462.git.avtikhon@tarantool.org>
LGTM
Test passed 100 out of 100 iterations.
And see comments inline.
On 02:08 Mon 27 Apr , Alexander V. Tikhonov wrote:
> From: "Aleander V. Tikhonov" <avtikhon@tarantool.org>
>
> Fixed flaky upstream checks at replication/skip_conflict_row test.
>
> Errors fixed:
>
> [038] @@ -174,7 +174,7 @@
> [038] ...
> [038] box.info.replication[1].upstream.status
> [038] ---
> [038] -- follow
> [038] +- disconnected
> [038] ...
> [038] -- write some conflicting records on slave
> [038] for i = 1, 10 do box.space.test:insert({i, 'r'}) end
>
> [030] @@ -201,12 +201,12 @@
> [030] -- lsn should be incremented
> [030] v1 == box.info.vclock[1] - 10
> [030] ---
> [030] -- true
> [030] +- false
> [030] ...
> [030] -- and state is follow
> [030] box.info.replication[1].upstream.status
> [030] ---
> [030] -- follow
> [030] +- disconnected
> [030] ...
> [030] -- restart server and check replication continues from nop-ed vclock
> [030] test_run:cmd("switch default")
>
> [022] @@ -230,7 +230,7 @@
> [022] ...
> [022] box.info.replication[1].upstream.status
> [022] ---
> [022] -- follow
> [022] +- disconnected
> [022] ...
> [022] box.space.test:select({11}, {iterator = "GE"})
> [022] ---
> [022]
It is not clear from output was the problem you have fixed.
I propose to remove this output and add description of the problem.
>
> Closes #4425
> ---
> test/replication/skip_conflict_row.result | 34 ++++++++-------------
> test/replication/skip_conflict_row.test.lua | 16 +++++-----
> test/replication/suite.ini | 1 -
> 3 files changed, 20 insertions(+), 31 deletions(-)
>
> diff --git a/test/replication/skip_conflict_row.result b/test/replication/skip_conflict_row.result
> index d70ac8e2a..737522b8b 100644
> --- a/test/replication/skip_conflict_row.result
> +++ b/test/replication/skip_conflict_row.result
> @@ -64,13 +64,9 @@ test_run:cmd("switch replica")
> ---
> - true
> ...
> -box.info.replication[1].upstream.message
> +test_run:wait_upstream(1, {status = 'follow', message_re = box.NULL})
> ---
> -- null
> -...
> -box.info.replication[1].upstream.status
> ----
> -- follow
> +- true
> ...
> box.space.test:select()
> ---
> @@ -123,13 +119,9 @@ lsn1 == box.info.vclock[1]
> ---
> - true
> ...
> -box.info.replication[1].upstream.message
> ----
> -- Duplicate key exists in unique index 'primary' in space 'test'
> -...
> -box.info.replication[1].upstream.status
> +test_run:wait_upstream(1, {status = 'stopped', message_re = "Duplicate key exists in unique index 'primary' in space 'test'"})
> ---
> -- stopped
> +- true
> ...
> test_run:cmd("switch default")
> ---
> @@ -140,9 +132,9 @@ test_run:cmd("restart server replica")
> - true
> ...
> -- applier is not in follow state
> -box.info.replication[1].upstream.message
> +test_run:wait_upstream(1, {status = 'stopped', message_re = "Duplicate key exists in unique index 'primary' in space 'test'"})
> ---
> -- Duplicate key exists in unique index 'primary' in space 'test'
> +- true
> ...
> --
> -- gh-3977: check that NOP is written instead of conflicting row.
> @@ -172,9 +164,9 @@ test_run:cmd("switch replica")
> ---
> - true
> ...
> -box.info.replication[1].upstream.status
> +test_run:wait_upstream(1, {status = 'follow'})
> ---
> -- follow
> +- true
> ...
> -- write some conflicting records on slave
> for i = 1, 10 do box.space.test:insert({i, 'r'}) end
> @@ -199,14 +191,14 @@ test_run:cmd("switch replica")
> - true
> ...
> -- lsn should be incremented
> -v1 == box.info.vclock[1] - 10
> +test_run:wait_cond(function() return v1 == box.info.vclock[1] - 10 end)
> ---
> - true
> ...
> -- and state is follow
> -box.info.replication[1].upstream.status
> +test_run:wait_upstream(1, {status = 'follow'})
> ---
> -- follow
> +- true
> ...
> -- restart server and check replication continues from nop-ed vclock
> test_run:cmd("switch default")
> @@ -228,9 +220,9 @@ test_run:cmd("switch replica")
> ---
> - true
> ...
> -box.info.replication[1].upstream.status
> +test_run:wait_upstream(1, {status = 'follow'})
> ---
> -- follow
> +- true
> ...
> box.space.test:select({11}, {iterator = "GE"})
> ---
> diff --git a/test/replication/skip_conflict_row.test.lua b/test/replication/skip_conflict_row.test.lua
> index 04fd08136..e7a93cc74 100644
> --- a/test/replication/skip_conflict_row.test.lua
> +++ b/test/replication/skip_conflict_row.test.lua
> @@ -22,8 +22,7 @@ vclock = test_run:get_vclock('default')
> vclock[0] = nil
> _ = test_run:wait_vclock("replica", vclock)
> test_run:cmd("switch replica")
> -box.info.replication[1].upstream.message
> -box.info.replication[1].upstream.status
> +test_run:wait_upstream(1, {status = 'follow', message_re = box.NULL})
> box.space.test:select()
>
> test_run:cmd("switch default")
> @@ -41,12 +40,11 @@ box.space.test:insert{4}
> test_run:cmd("switch replica")
> -- lsn is not promoted
> lsn1 == box.info.vclock[1]
> -box.info.replication[1].upstream.message
> -box.info.replication[1].upstream.status
> +test_run:wait_upstream(1, {status = 'stopped', message_re = "Duplicate key exists in unique index 'primary' in space 'test'"})
> test_run:cmd("switch default")
> test_run:cmd("restart server replica")
> -- applier is not in follow state
> -box.info.replication[1].upstream.message
> +test_run:wait_upstream(1, {status = 'stopped', message_re = "Duplicate key exists in unique index 'primary' in space 'test'"})
>
> --
> -- gh-3977: check that NOP is written instead of conflicting row.
> @@ -60,7 +58,7 @@ test_run:cmd("switch default")
> box.space.test:truncate()
> test_run:cmd("restart server replica")
> test_run:cmd("switch replica")
> -box.info.replication[1].upstream.status
> +test_run:wait_upstream(1, {status = 'follow'})
> -- write some conflicting records on slave
> for i = 1, 10 do box.space.test:insert({i, 'r'}) end
> box.cfg{replication_skip_conflict = true}
> @@ -72,9 +70,9 @@ for i = 1, 10 do box.space.test:insert({i, 'm'}) end
>
> test_run:cmd("switch replica")
> -- lsn should be incremented
> -v1 == box.info.vclock[1] - 10
> +test_run:wait_cond(function() return v1 == box.info.vclock[1] - 10 end)
> -- and state is follow
> -box.info.replication[1].upstream.status
> +test_run:wait_upstream(1, {status = 'follow'})
>
> -- restart server and check replication continues from nop-ed vclock
> test_run:cmd("switch default")
> @@ -82,7 +80,7 @@ test_run:cmd("stop server replica")
> for i = 11, 20 do box.space.test:insert({i, 'm'}) end
> test_run:cmd("start server replica")
> test_run:cmd("switch replica")
> -box.info.replication[1].upstream.status
> +test_run:wait_upstream(1, {status = 'follow'})
> box.space.test:select({11}, {iterator = "GE"})
>
> test_run:cmd("switch default")
> diff --git a/test/replication/suite.ini b/test/replication/suite.ini
> index ac413669d..572dd47fe 100644
> --- a/test/replication/suite.ini
> +++ b/test/replication/suite.ini
> @@ -13,7 +13,6 @@ is_parallel = True
> pretest_clean = True
> fragile = errinj.test.lua ; gh-3870
> long_row_timeout.test.lua ; gh-4351
> - skip_conflict_row.test.lua ; gh-4457
> sync.test.lua ; gh-3835 gh-3877
> transaction.test.lua ; gh-4312
> wal_off.test.lua ; gh-4355
> --
> 2.17.1
>
--
sergeyb@
next prev parent reply other threads:[~2020-04-29 11:54 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-26 23:08 Alexander V. Tikhonov
2020-04-27 7:36 ` Kirill Yukhin
2020-04-29 11:53 ` Sergey Bronnikov [this message]
2020-04-30 11:11 ` Kirill Yukhin
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=20200429115350.GA26469@pony.bronevichok.ru \
--to=sergeyb@tarantool.org \
--cc=avtikhon@tarantool.org \
--cc=o.piskunov@tarantool.org \
--cc=tarantool-patches@dev.tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH v1] test: fix flaky replication/skip_conflict_row test' \
/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