From: "Alexander V. Tikhonov" <avtikhon@tarantool.org> To: Kirill Yukhin <kyukhin@tarantool.org> Cc: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH v1 09/12] test: increase timeouts in replication/misc Date: Tue, 26 Nov 2019 09:21:45 +0300 [thread overview] Message-ID: <c62ea80f23fac816af15246a7048ff5435ba9fea.1574749278.git.avtikhon@tarantool.org> (raw) In-Reply-To: <1c42ad20160f47d942cab405ce9896d6d31cc05f.1574749278.git.avtikhon@tarantool.org> In-Reply-To: <1c42ad20160f47d942cab405ce9896d6d31cc05f.1574749278.git.avtikhon@tarantool.org> From: Alexander Turenko <alexander.turenko@tarantool.org> All changes are needed to eliminate sporadic fails when testing is run with, say, 30 parallel jobs. First, replication_connect_timeout is increased to 30 seconds. This parameter doesn't change meaning of the test cases. Second, increase replication_timeout from 0.01 to 0.03. We usually set it to 0.1 in tests, but a duration of the gh-3160 test case ('Send heartbeats if there are changes from a remote master only') is around 100 * replication_timeout seconds and we don't want to make this test much longer. Runs of the test case (w/o other ones that are in replication/mics.test.lua) in 30 parallel jobs show that 0.03 is enough for the gh-3160 case to pass stably and hopefully enough for the following test cases too. (cherry picked from commit 697caa6b731ae89627958b1fda2aa1da49ecee5d) --- test/replication/misc.result | 43 ++++++++-------------------------- test/replication/misc.test.lua | 27 ++++++++------------- 2 files changed, 20 insertions(+), 50 deletions(-) diff --git a/test/replication/misc.result b/test/replication/misc.result index b4af9e41f..6c9582035 100644 --- a/test/replication/misc.result +++ b/test/replication/misc.result @@ -117,32 +117,12 @@ SERVERS = { 'autobootstrap1', 'autobootstrap2', 'autobootstrap3' } --- ... -- Deploy a cluster. -test_run:create_cluster(SERVERS, "replication", {args="0.1"}) +test_run:create_cluster(SERVERS, "replication", {args="0.03"}) --- ... test_run:wait_fullmesh(SERVERS) --- ... -test_run:cmd("switch autobootstrap1") ---- -- true -... -test_run = require('test_run').new() ---- -... -box.cfg{replication_timeout = 0.01, replication_connect_timeout=0.01} ---- -... -test_run:cmd("switch autobootstrap2") ---- -- true -... -test_run = require('test_run').new() ---- -... -box.cfg{replication_timeout = 0.01, replication_connect_timeout=0.01} ---- -... test_run:cmd("switch autobootstrap3") --- - true @@ -150,10 +130,7 @@ test_run:cmd("switch autobootstrap3") test_run = require('test_run').new() --- ... -fiber=require('fiber') ---- -... -box.cfg{replication_timeout = 0.01, replication_connect_timeout=0.01} +fiber = require('fiber') --- ... _ = box.schema.space.create('test_timeout'):create_index('pk') @@ -163,11 +140,11 @@ test_run:cmd("setopt delimiter ';'") --- - true ... -function wait_follow(replicaA, replicaB) +function wait_not_follow(replicaA, replicaB) return test_run:wait_cond(function() return replicaA.status ~= 'follow' or replicaB.status ~= 'follow' - end, 0.01) -end ; + end, box.cfg.replication_timeout) +end; --- ... function test_timeout() @@ -175,16 +152,16 @@ function test_timeout() local replicaB = box.info.replication[3].upstream or box.info.replication[2].upstream local follows = test_run:wait_cond(function() return replicaA.status == 'follow' or replicaB.status == 'follow' - end, 0.1) - if not follows then error('replicas not in follow status') end - for i = 0, 99 do + end) + if not follows then error('replicas are not in the follow status') end + for i = 0, 99 do box.space.test_timeout:replace({1}) - if wait_follow(replicaA, replicaB) then + if wait_not_follow(replicaA, replicaB) then return error(box.info.replication) end end return true -end ; +end; --- ... test_run:cmd("setopt delimiter ''"); diff --git a/test/replication/misc.test.lua b/test/replication/misc.test.lua index dd374a210..bdfeea11c 100644 --- a/test/replication/misc.test.lua +++ b/test/replication/misc.test.lua @@ -44,40 +44,33 @@ test_run:cleanup_cluster() SERVERS = { 'autobootstrap1', 'autobootstrap2', 'autobootstrap3' } -- Deploy a cluster. -test_run:create_cluster(SERVERS, "replication", {args="0.1"}) +test_run:create_cluster(SERVERS, "replication", {args="0.03"}) test_run:wait_fullmesh(SERVERS) -test_run:cmd("switch autobootstrap1") -test_run = require('test_run').new() -box.cfg{replication_timeout = 0.01, replication_connect_timeout=0.01} -test_run:cmd("switch autobootstrap2") -test_run = require('test_run').new() -box.cfg{replication_timeout = 0.01, replication_connect_timeout=0.01} test_run:cmd("switch autobootstrap3") test_run = require('test_run').new() -fiber=require('fiber') -box.cfg{replication_timeout = 0.01, replication_connect_timeout=0.01} +fiber = require('fiber') _ = box.schema.space.create('test_timeout'):create_index('pk') test_run:cmd("setopt delimiter ';'") -function wait_follow(replicaA, replicaB) +function wait_not_follow(replicaA, replicaB) return test_run:wait_cond(function() return replicaA.status ~= 'follow' or replicaB.status ~= 'follow' - end, 0.01) -end ; + end, box.cfg.replication_timeout) +end; function test_timeout() local replicaA = box.info.replication[1].upstream or box.info.replication[2].upstream local replicaB = box.info.replication[3].upstream or box.info.replication[2].upstream local follows = test_run:wait_cond(function() return replicaA.status == 'follow' or replicaB.status == 'follow' - end, 0.1) - if not follows then error('replicas not in follow status') end - for i = 0, 99 do + end) + if not follows then error('replicas are not in the follow status') end + for i = 0, 99 do box.space.test_timeout:replace({1}) - if wait_follow(replicaA, replicaB) then + if wait_not_follow(replicaA, replicaB) then return error(box.info.replication) end end return true -end ; +end; test_run:cmd("setopt delimiter ''"); test_timeout() -- 2.17.1
next prev parent reply other threads:[~2019-11-26 6:22 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-26 6:21 [Tarantool-patches] [PATCH v1 01/12] test: enable parallel mode for xlog tests Alexander V. Tikhonov 2019-11-26 6:21 ` [Tarantool-patches] [PATCH v1 02/12] test: enable parallel run for long test suites Alexander V. Tikhonov 2019-11-26 6:21 ` [Tarantool-patches] [PATCH v1 03/12] test: replication parallel mode on Alexander V. Tikhonov 2019-11-26 6:21 ` [Tarantool-patches] [PATCH v1 04/12] test: enable cleaning of a test environment Alexander V. Tikhonov 2019-11-26 6:21 ` [Tarantool-patches] [PATCH v1 05/12] test: allow to run replication/misc multiple times Alexander V. Tikhonov 2019-11-26 6:21 ` [Tarantool-patches] [PATCH v1 06/12] test: increase timeouts in replication/errinj Alexander V. Tikhonov 2019-11-26 6:21 ` [Tarantool-patches] [PATCH v1 07/12] test: wait for xlog/snap/log file changes Alexander V. Tikhonov 2019-11-26 6:21 ` [Tarantool-patches] [PATCH v1 08/12] test: use wait_cond to check follow status Alexander V. Tikhonov 2019-11-26 6:21 ` Alexander V. Tikhonov [this message] 2019-11-26 6:21 ` [Tarantool-patches] [PATCH v1 10/12] test: put require in proper places Alexander V. Tikhonov 2019-11-26 6:21 ` [Tarantool-patches] [PATCH v1 11/12] test: fix replication/gc flaky failures Alexander V. Tikhonov 2019-11-26 6:21 ` [Tarantool-patches] [PATCH v1 12/12] test: errinj for pause relay_send Alexander V. Tikhonov 2019-11-26 6:54 ` [Tarantool-patches] [PATCH v1 01/12] test: enable parallel mode for xlog tests 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=c62ea80f23fac816af15246a7048ff5435ba9fea.1574749278.git.avtikhon@tarantool.org \ --to=avtikhon@tarantool.org \ --cc=kyukhin@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v1 09/12] test: increase timeouts in replication/misc' \ /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