Tarantool development patches archive
 help / color / mirror / Atom feed
From: Vladimir Davydov <vdavydov.dev@gmail.com>
To: tarantool-patches@freelists.org
Subject: [PATCH] test: fix box/iproto_stress sporadic failure
Date: Thu, 28 Feb 2019 17:24:06 +0300	[thread overview]
Message-ID: <48b0070bbf381640d1877534914b07e270c04bbf.1551363799.git.vdavydov.dev@gmail.com> (raw)

This patch fixes the following test failure:

 | --- box/iproto_stress.result	Tue Dec 25 09:56:54 2018
 | +++ box/iproto_stress.reject	Tue Dec 25 10:12:22 2018
 | @@ -80,7 +80,7 @@
 |  ...
 |  n_workers -- 0
 |  ---
 | -- 0
 | +- 340
 |  ...
 |  n_errors -- 0
 |  ---
 | @@ -93,5 +93,3 @@
 |  ---
 |  ...
 |  box.cfg{net_msg_max = net_msg_max}
 | ----
 | -...

The problem is the test is quite cpu intensive so if the host is heavily
loaded (as it is often the case when tests are run on Travis CI), it may
take a few minutes to complete, while the timeout is set to 10 seconds.

To fix it, let's
 - Increase the timeout up to 60 seconds and use test_run.wait_cond
   instead of a homebrew loop.
 - Decrease the number of fibers from 400 down to 100 and adjust
   box.cfg.net_msg_max respectively.

Closes #3911
---
https://github.com/tarantool/tarantool/issues/3911
https://github.com/tarantool/tarantool/tree/dv/test-fixes

 test/box/iproto_stress.result   | 10 ++++------
 test/box/iproto_stress.test.lua |  7 +++----
 2 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/test/box/iproto_stress.result b/test/box/iproto_stress.result
index 4239b49b..7149d6c5 100644
--- a/test/box/iproto_stress.result
+++ b/test/box/iproto_stress.result
@@ -10,7 +10,7 @@ net_box = require('net.box')
 net_msg_max = box.cfg.net_msg_max
 ---
 ...
-box.cfg{net_msg_max = 64}
+box.cfg{net_msg_max = 16}
 ---
 ...
 box.schema.user.grant('guest', 'read,write,execute', 'universe')
@@ -54,7 +54,7 @@ test_run:cmd("setopt delimiter ''");
 ---
 - true
 ...
-for i = 1,400 do fiber.create(worker, i) end
+for i = 1, 100 do fiber.create(worker, i) end
 ---
 ...
 fiber.sleep(0.1)
@@ -72,11 +72,9 @@ box.error.injection.set("ERRINJ_WAL_DELAY", false)
 ---
 - ok
 ...
-attempt = 0
----
-...
-while n_workers > 0 and attempt < 100 do fiber.sleep(0.1) attempt = attempt + 1 end
+test_run:wait_cond(function() return n_workers == 0 end, 60)
 ---
+- true
 ...
 n_workers -- 0
 ---
diff --git a/test/box/iproto_stress.test.lua b/test/box/iproto_stress.test.lua
index 2f307145..1e1a6578 100644
--- a/test/box/iproto_stress.test.lua
+++ b/test/box/iproto_stress.test.lua
@@ -4,7 +4,7 @@ fiber = require('fiber')
 net_box = require('net.box')
 
 net_msg_max = box.cfg.net_msg_max
-box.cfg{net_msg_max = 64}
+box.cfg{net_msg_max = 16}
 
 box.schema.user.grant('guest', 'read,write,execute', 'universe')
 
@@ -33,7 +33,7 @@ function worker(i)
 end;
 test_run:cmd("setopt delimiter ''");
 
-for i = 1,400 do fiber.create(worker, i) end
+for i = 1, 100 do fiber.create(worker, i) end
 fiber.sleep(0.1)
 
 -- check that iproto doesn't deplete tx fiber pool on wal stall (see gh-1892)
@@ -41,8 +41,7 @@ box.error.injection.set("ERRINJ_WAL_DELAY", true)
 fiber.sleep(0.1)
 box.error.injection.set("ERRINJ_WAL_DELAY", false)
 
-attempt = 0
-while n_workers > 0 and attempt < 100 do fiber.sleep(0.1) attempt = attempt + 1 end
+test_run:wait_cond(function() return n_workers == 0 end, 60)
 n_workers -- 0
 n_errors -- 0
 
-- 
2.11.0

             reply	other threads:[~2019-02-28 14:24 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-28 14:24 Vladimir Davydov [this message]
2019-02-28 15:31 ` Vladimir Davydov

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=48b0070bbf381640d1877534914b07e270c04bbf.1551363799.git.vdavydov.dev@gmail.com \
    --to=vdavydov.dev@gmail.com \
    --cc=tarantool-patches@freelists.org \
    --subject='Re: [PATCH] test: fix box/iproto_stress sporadic failure' \
    /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