From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp33.i.mail.ru (smtp33.i.mail.ru [94.100.177.93]) (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 8CD99469719 for ; Sun, 6 Sep 2020 18:36:54 +0300 (MSK) From: "Alexander V. Tikhonov" Date: Sun, 6 Sep 2020 18:36:50 +0300 Message-Id: Subject: [Tarantool-patches] [PATCH v1] test: flaky replication/gh-4402-info-errno.test.lua List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kirill Yukhin , Serge Petrenko Cc: tarantool-patches@dev.tarantool.org On heavy loaded hosts found the following issue: [004] --- replication/gh-4402-info-errno.result Wed Jul 22 06:13:34 2020 [004] +++ replication/gh-4402-info-errno.reject Wed Jul 22 06:41:14 2020 [004] @@ -32,7 +32,39 @@ [004] | ... [004] d ~= nil and d.status == 'follow' or i [004] | --- [004] - | - true [004] + | - version: 2.6.0-10-g8df49e4 [004] + | id: 1 [004] + | ro: false [004] + | uuid: 41c4e3bf-cc3b-443d-88c9-39a9a8fe2df9 [004] + | package: Tarantool [004] + | cluster: [004] + | uuid: 6ec7bcce-68e7-41a4-b84b-dc9236621579 [004] + | listen: unix/:(socket) [004] + | replication_anon: [004] + | count: 0 [004] + | replication: [004] + | 1: [004] + | id: 1 [004] + | uuid: 41c4e3bf-cc3b-443d-88c9-39a9a8fe2df9 [004] + | lsn: 52 [004] + | 2: [004] + | id: 2 [004] + | uuid: 8a989231-177a-4eb8-8030-c148bc752b0e [004] + | lsn: 0 [004] + | downstream: [004] + | status: stopped [004] + | message: timed out [004] + | system_message: Connection timed out [004] + | signature: 52 [004] + | status: running [004] + | vclock: {1: 52} [004] + | uptime: 27 [004] + | lsn: 52 [004] + | sql: [] [004] + | gc: [] [004] + | vinyl: [] [004] + | memory: [] [004] + | pid: 99 [004] | ... [004] [004] test_run:cmd('stop server replica') It happened because replication downstream status check occurred too early, when it was only in 'stopped' state. To give the replication status check routine ability to reach the needed 'follow' state, it need to wait for it using test_run:wait_downstream() routine. Closes #5235 --- Github: https://github.com/tarantool/tarantool/tree/avtikhon/gh-5235-fix-4402 Issue: https://github.com/tarantool/tarantool/issues/5235 test/replication/gh-4402-info-errno.result | 5 +---- test/replication/gh-4402-info-errno.test.lua | 3 +-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/test/replication/gh-4402-info-errno.result b/test/replication/gh-4402-info-errno.result index 661eea38b..9c6b352a4 100644 --- a/test/replication/gh-4402-info-errno.result +++ b/test/replication/gh-4402-info-errno.result @@ -27,10 +27,7 @@ i = box.info replica_id = i.id % 2 + 1 | --- | ... -d = i.replication[replica_id].downstream - | --- - | ... -d ~= nil and d.status == 'follow' or i +test_run:wait_downstream(replica_id, {status = 'follow'}) or i | --- | - true | ... diff --git a/test/replication/gh-4402-info-errno.test.lua b/test/replication/gh-4402-info-errno.test.lua index 1b2d9d814..8f72e7f72 100644 --- a/test/replication/gh-4402-info-errno.test.lua +++ b/test/replication/gh-4402-info-errno.test.lua @@ -12,8 +12,7 @@ test_run:cmd('create server replica with rpl_master=default, script="replication test_run:cmd('start server replica') i = box.info replica_id = i.id % 2 + 1 -d = i.replication[replica_id].downstream -d ~= nil and d.status == 'follow' or i +test_run:wait_downstream(replica_id, {status = 'follow'}) or i test_run:cmd('stop server replica') test_run:cmd("cleanup server replica") -- 2.17.1