From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp58.i.mail.ru (smtp58.i.mail.ru [217.69.128.38]) (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 5BEAC469719 for ; Tue, 8 Sep 2020 14:50:14 +0300 (MSK) From: "Alexander V. Tikhonov" Date: Tue, 8 Sep 2020 14:50:11 +0300 Message-Id: Subject: [Tarantool-patches] [PATCH v1] test: flaky replication/wal_off.test.lua test 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: [035] --- replication/wal_off.result Fri Jul 3 04:29:56 2020 [035] +++ replication/wal_off.reject Mon Sep 7 15:32:46 2020 [035] @@ -47,6 +47,8 @@ [035] ... [035] while box.info.replication[wal_off_id].upstream.message ~= check do fiber.sleep(0) end [035] --- [035] +- error: '[string "while box.info.replication[wal_off_id].upstre..."]:1: attempt to [035] + index field ''upstream'' (a nil value)' [035] ... [035] box.info.replication[wal_off_id].upstream ~= nil [035] --- It happened because replication upstream status check occurred too early, when its state was not set. To give the replication status check routine ability to reach the needed 'stopped' state, it need to wait for it using test_run:wait_upstream() routine. Closes #5278 --- Github: https://github.com/tarantool/tarantool/tree/avtikhon/gh-5278-repl-wal-off Issue: https://github.com/tarantool/tarantool/issues/5278 test/replication/wal_off.result | 16 +--------------- test/replication/wal_off.test.lua | 6 +----- 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/test/replication/wal_off.result b/test/replication/wal_off.result index f69e58893..ea7e679f5 100644 --- a/test/replication/wal_off.result +++ b/test/replication/wal_off.result @@ -42,13 +42,7 @@ wal_off_id = test_run:eval('wal_off', 'return box.info.id')[1] box.cfg { replication = wal_off_uri } --- ... -check = "Replication does not support wal_mode = 'none'" ---- -... -while box.info.replication[wal_off_id].upstream.message ~= check do fiber.sleep(0) end ---- -... -box.info.replication[wal_off_id].upstream ~= nil +test_run:wait_upstream(wal_off_id, {status = 'stopped', message_re = "Replication does not support wal_mode = 'none'"}) --- - true ... @@ -56,14 +50,6 @@ box.info.replication[wal_off_id].downstream ~= nil --- - true ... -box.info.replication[wal_off_id].upstream.status ---- -- stopped -... -box.info.replication[wal_off_id].upstream.message ---- -- Replication does not support wal_mode = 'none' -... box.cfg { replication = "" } --- ... diff --git a/test/replication/wal_off.test.lua b/test/replication/wal_off.test.lua index 7298ba1d8..d48d12773 100644 --- a/test/replication/wal_off.test.lua +++ b/test/replication/wal_off.test.lua @@ -15,12 +15,8 @@ wal_off_uri ~= nil wal_off_id = test_run:eval('wal_off', 'return box.info.id')[1] box.cfg { replication = wal_off_uri } -check = "Replication does not support wal_mode = 'none'" -while box.info.replication[wal_off_id].upstream.message ~= check do fiber.sleep(0) end -box.info.replication[wal_off_id].upstream ~= nil +test_run:wait_upstream(wal_off_id, {status = 'stopped', message_re = "Replication does not support wal_mode = 'none'"}) box.info.replication[wal_off_id].downstream ~= nil -box.info.replication[wal_off_id].upstream.status -box.info.replication[wal_off_id].upstream.message box.cfg { replication = "" } test_run:cmd('switch wal_off') -- 2.17.1