Tarantool development patches archive
 help / color / mirror / Atom feed
From: "Alexander V. Tikhonov" <avtikhon@tarantool.org>
To: Alexander Turenko <alexander.turenko@tarantool.org>,
	Kirill Yukhin <kyukhin@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH v2 2/2] test: fix flaky box/net.box_readahead_gh-3958 test
Date: Fri, 3 Jul 2020 16:45:37 +0300	[thread overview]
Message-ID: <20200703134537.GA19036@hpalx> (raw)
In-Reply-To: <20200629121808.x57t46jhbobagvzd@tkn_work_nb>

Hi Alexander, thanks a lot for your help and review. I've made all
corrections in the commit message as you suggested.

Kirill please proceed with pushing the fix to all release branches.

On Mon, Jun 29, 2020 at 03:18:08PM +0300, Alexander Turenko wrote:
> Please, polish the commit message. The fix itself is okay.
> 
> It would be counter-productive to play ping-pong around the problem
> description, so let's do your best and ask Kirill to push. No need to
> review the messages with me again.
> 
> I'm okay after clarification of details pointed below.
> 
> WBR, Alexaner Turenko.
> 
> On Thu, Jun 25, 2020 at 02:25:11PM +0300, Alexander V. Tikhonov wrote:
> > Issue:
> > 
> > [014] --- box/net.box_readahead_gh-3958.result Mon Jun 15 15:33:23 2020
> > [014] +++ box/net.box_readahead_gh-3958.reject Tue Jun 16 02:24:04 2020
> > [014] @@ -46,6 +46,7 @@
> > [014]  ...
> > [014]  test_run:wait_log('default', 'readahead limit is reached', 1024, 0.1)
> > [014]  ---
> > [014] +- readahead limit is reached
> > [014]  ...
> > [014]  s:drop()
> > [014]  ---
> > [014]
> 
> Okay.
> 
> > [014] Last 15 lines of Tarantool Log file [Instance "box"][/tarantool/test/var/014_box/box.log]:
> > [014] 2020-06-16 02:24:03.792 [5585] main/121/console/unix/: I> set 'read_only' configuration option to false
> > [014] 2020-06-16 02:24:03.834 [5585] iproto iproto.cc:606 W> stopping input on connection fd 26, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > [014] 2020-06-16 02:24:03.835 [5585] iproto iproto.cc:606 W> stopping input on connection fd 26, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > [014] 2020-06-16 02:24:03.835 [5585] iproto iproto.cc:606 W> stopping input on connection fd 26, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > [014] 2020-06-16 02:24:03.836 [5585] iproto iproto.cc:606 W> stopping input on connection fd 26, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > [014] 2020-06-16 02:24:03.836 [5585] iproto iproto.cc:606 W> stopping input on connection fd 26, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > [014] 2020-06-16 02:24:03.836 [5585] iproto iproto.cc:606 W> stopping input on connection fd 26, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > [014] 2020-06-16 02:24:03.836 [5585] iproto iproto.cc:606 W> stopping input on connection fd 26, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > [014] 2020-06-16 02:24:03.837 [5585] iproto iproto.cc:606 W> stopping input on connection fd 26, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > [014] 2020-06-16 02:24:03.837 [5585] iproto iproto.cc:606 W> stopping input on connection fd 26, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > [014] 2020-06-16 02:24:03.837 [5585] iproto iproto.cc:606 W> stopping input on connection fd 26, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > [014] 2020-06-16 02:24:03.951 [5585] main/121/console/unix/: space.h:336 E> ER_NO_SUCH_INDEX_ID: No index #1 is defined in space '_space'
> > [014] 2020-06-16 02:24:04.180 [5585] main/121/console/unix/: I> set 'readahead' configuration option to 128
> > [014] 2020-06-16 02:24:04.183 [5585] main/121/console/unix/: I> set 'readahead' configuration option to 102400
> > [014] 2020-06-16 02:24:04.189 [5585] main/453/console/unix/: I> set 'readahead' configuration option to 16320
> 
> I think this block is redundant: you already show above that wait_log()
> found the warning re readahead, while it should not. And provided
> interpretation below.
> 
> > 
> > Found that the root cause of the issue, was the previously run test
> > 'box/net.box_call_blocks_gh-946.test.lua' on the same worker, in this
> > case the log output mistakenly checked by wait_log/grep_log test_run
> > function, which finds the grepping string in the log of the previous
> > test.
> 
> It is okay.
> 
> > To avoid of it the tests can be swapped in worker running queue
> > and in this case both tests pass, check swapped log output:
> 
> I guess you want to say that when tests are run on different workers or
> in another order, everything works. Initially I don't get what is
> 'swapping in worker running queue' and how I can do it. Too much
> specific terms to express different ordering, IMHO.
> 
> > 
> > 2020-06-17 10:57:39.881 [69372] main C> entering the event loop
> > 2020-06-17 10:57:39.896 [69372] main/119/console/unix/: I> set 'readahead' configuration option to 128
> > 2020-06-17 10:57:39.898 [69372] main/119/console/unix/: I> set 'readahead' configuration option to 102400
> > 2020-06-17 10:57:40.003 [69372] main/156/console/unix/: I> set 'readahead' configuration option to 16320
> > 2020-06-17 10:57:40.053 [69372] iproto iproto.cc:606 W> stopping input on connection fd 33, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > 2020-06-17 10:57:40.056 [69372] iproto iproto.cc:606 W> stopping input on connection fd 33, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > 2020-06-17 10:57:40.056 [69372] iproto iproto.cc:606 W> stopping input on connection fd 33, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > 2020-06-17 10:57:40.058 [69372] iproto iproto.cc:606 W> stopping input on connection fd 33, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > 2020-06-17 10:57:40.058 [69372] iproto iproto.cc:606 W> stopping input on connection fd 33, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > 2020-06-17 10:57:40.061 [69372] iproto iproto.cc:606 W> stopping input on connection fd 33, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > 2020-06-17 10:57:40.061 [69372] iproto iproto.cc:606 W> stopping input on connection fd 33, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > 2020-06-17 10:57:40.062 [69372] iproto iproto.cc:606 W> stopping input on connection fd 33, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > 2020-06-17 10:57:40.062 [69372] iproto iproto.cc:606 W> stopping input on connection fd 33, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > 2020-06-17 10:57:40.063 [69372] iproto iproto.cc:606 W> stopping input on connection fd 33, aka unix/:(socket), peer of unix/:(socket), readahead limit is reached
> > 2020-06-17 10:57:40.067 [69372] main C> got signal 15 - Terminated
> 
> I don't think that this big log is useful. Proper description what is
> going on is enough.
> 
> > 
> > Also found that 'readahead' issue from the first test blocks its
> > printing to log file due to suppressed. To fix this issue the
> > default server must be restarted at the very start of the test.
> 
> I know the context, but I would not understand it from the message if I
> would not know already.
> 
> You describe another possible fix with printing a 1 KiB log entry before
> a test case and then check a last 1 KiB of the log for the 'readahead
> limit reached' message.
> 
> You should describe it (maybe even provide a diff) and describe the
> reason why it does not work: ratelimiting of such messages may lead to
> disappearing some amount of messages when its pressure is descreased
> below the limit (nothing triggers printing of suspended messages if such
> messages are not triggered anymore). Let's experiment with this and
> describe your observations.
> 
> > 
> > Closes #5082
> > ---
> > 
> > Github: https://github.com/tarantool/tarantool/tree/avtikhon/gh-5082-net-box-readahead
> > Issue: https://github.com/tarantool/tarantool/issues/5082
> 
> > index 1e33a84cb..f34240b65 100644
> > --- a/test/box/net.box_readahead_gh-3958.test.lua
> > +++ b/test/box/net.box_readahead_gh-3958.test.lua
> > @@ -1,4 +1,5 @@
> >  test_run = require('test_run').new()
> > +test_run:cmd('restart server default')
> >  net = require('net.box')
> 
> Okay. But I would leave a short comment here, like 'discard all logs
> from previous tests and clear log ratelimiting statistics'.

  reply	other threads:[~2020-07-03 13:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-25 11:25 [Tarantool-patches] [PATCH v2 1/2] test: fix flaky box/net.box_call_blocks_gh-946 Alexander V. Tikhonov
2020-06-25 11:25 ` [Tarantool-patches] [PATCH v2 2/2] test: fix flaky box/net.box_readahead_gh-3958 test Alexander V. Tikhonov
2020-06-29 12:18   ` Alexander Turenko
2020-07-03 13:45     ` Alexander V. Tikhonov [this message]
2020-07-03 14:09   ` Kirill Yukhin
2020-06-29 11:49 ` [Tarantool-patches] [PATCH v2 1/2] test: fix flaky box/net.box_call_blocks_gh-946 Alexander Turenko

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=20200703134537.GA19036@hpalx \
    --to=avtikhon@tarantool.org \
    --cc=alexander.turenko@tarantool.org \
    --cc=kyukhin@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v2 2/2] test: fix flaky box/net.box_readahead_gh-3958 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