[Tarantool-patches] [PATCH v9 1/1] applier: filter incoming synchro packets via transaction initiator

Serge Petrenko sergepetrenko at tarantool.org
Wed Jun 16 11:16:04 MSK 2021



15.06.2021 20:02, Cyrill Gorcunov пишет:
> On Tue, Jun 15, 2021 at 05:26:06PM +0300, Serge Petrenko wrote:
>>> +box.space.sync:select{}
>>> + | ---
>>> + | - - [1]
>>> + | ...
>> You need to wait for the space creation, just like
>> you do below. Otherwise the test'll be flaky.
>> Also, please see a comment regarding wait_lsn vs wait_cond
>> below.
> As being discussed due to quorum=2 and sync space we don't need
> to wait.

Yes, indeed. I missed that.

>>> +test_run:wait_cond(function() return                    \
>>> +                   box.space.sync ~= nil and            \
>>> +                   box.space.sync:get{1} ~= nil and     \
>>> +                   box.space.sync:get{1}[1] == 1 end, 100)
>>> + | ---
>>> + | - true
>>> + | ...
>> I suggest you use wait_lsn('replica2', 'master') here
>> instead of this bulky wait_cond.
>> First of all, it takes a single line, instead of 4 lines.
>>
>> Secondly, you forgot to test `box.space.sync.index.pk ~= nil`, meaning
>> the test will still fail occasionally, when index creation doesn't replicate
>> in time.
> You mean something like below?
> ---
> diff --git a/test/replication/gh-6035-applier-filter.result b/test/replication/gh-6035-applier-filter.result
> index 2620e7b6f..7345a19f7 100644
> --- a/test/replication/gh-6035-applier-filter.result
> +++ b/test/replication/gh-6035-applier-filter.result
> @@ -102,12 +102,8 @@ test_run:switch('replica2')
>    | ---
>    | - true
>    | ...
> -test_run:wait_cond(function() return                    \
> -                   box.space.sync ~= nil and            \
> -                   box.space.sync:get{1} ~= nil and     \
> -                   box.space.sync:get{1}[1] == 1 end, 100)
> +test_run:wait_lsn('replica2', 'master')
>    | ---
> - | - true
>    | ...
>   box.space.sync:select{}
>    | ---
> diff --git a/test/replication/gh-6035-applier-filter.test.lua b/test/replication/gh-6035-applier-filter.test.lua
> index 9bfd91288..beca5258e 100644
> --- a/test/replication/gh-6035-applier-filter.test.lua
> +++ b/test/replication/gh-6035-applier-filter.test.lua
> @@ -53,10 +53,7 @@ box.space.sync:select{}
>   -- And the second hop is replica2 where
>   -- replica1 replicated the data to us.
>   test_run:switch('replica2')
> -test_run:wait_cond(function() return                    \
> -                   box.space.sync ~= nil and            \
> -                   box.space.sync:get{1} ~= nil and     \
> -                   box.space.sync:get{1}[1] == 1 end, 100)
> +test_run:wait_lsn('replica2', 'master')
>   box.space.sync:select{}
>   
>   test_run:switch('default')

Exactly.

-- 
Serge Petrenko



More information about the Tarantool-patches mailing list