Tarantool development patches archive
 help / color / mirror / Atom feed
From: "Alexander V. Tikhonov" <avtikhon@tarantool.org>
To: Kirill Yukhin <kyukhin@tarantool.org>,
	Serge Petrenko <sergepetrenko@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: [Tarantool-patches] [PATCH v1] test: flaky replication/wal_off.test.lua test
Date: Tue,  8 Sep 2020 14:50:11 +0300	[thread overview]
Message-ID: <bda73285fb38db64c6e1d91111edd0682b390a60.1599565740.git.avtikhon@tarantool.org> (raw)

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

             reply	other threads:[~2020-09-08 11:50 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-08 11:50 Alexander V. Tikhonov [this message]
2020-09-09 15:45 ` Serge Petrenko
2020-09-11 10:37 ` 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=bda73285fb38db64c6e1d91111edd0682b390a60.1599565740.git.avtikhon@tarantool.org \
    --to=avtikhon@tarantool.org \
    --cc=kyukhin@tarantool.org \
    --cc=sergepetrenko@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v1] test: flaky replication/wal_off.test.lua 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