unofficial mirror of meta@public-inbox.org
 help / color / mirror / Atom feed
* test: 'seen set from rename' potentially racy
@ 2021-11-04 13:43 Konstantin Ryabitsev
  2021-11-04 18:51 ` Eric Wong
  0 siblings, 1 reply; 3+ messages in thread
From: Konstantin Ryabitsev @ 2021-11-04 13:43 UTC (permalink / raw)
  To: meta

Hello:

I was having some trouble using "make check" on the Fedora build system:

#   Failed test 'seen set from rename'
#   at t/lei-watch.t line 61.
#                   '/tmp/pi-lei-watch-11080-FYz2/lei-daemon/md2/cur/9bf1002c49eb075df47247b74d69bcd555e23422=99:2,'
#     doesn't match '(?^:S\z)'
# [
#   '/tmp/pi-lei-watch-11080-FYz2/lei-daemon/md2/cur/9bf1002c49eb075df47247b74d69bcd555e23422=99:2,'
# ]

This wasn't happening in my own chroot builds, so I'm suspecting that the
faster system on the Fedora build infra side is causing this failure,
therefore perhaps some kind of race condition. 

You can see the entire log here:

https://download.copr.fedorainfracloud.org/results/icon/b4/fedora-35-x86_64/02928611-public-inbox/build.log.gz

Switching to "make test" seems to help, which is what I've done for now.

Cheers,
-K

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: test: 'seen set from rename' potentially racy
  2021-11-04 13:43 test: 'seen set from rename' potentially racy Konstantin Ryabitsev
@ 2021-11-04 18:51 ` Eric Wong
  2022-02-13 21:01   ` Eric Wong
  0 siblings, 1 reply; 3+ messages in thread
From: Eric Wong @ 2021-11-04 18:51 UTC (permalink / raw)
  To: Konstantin Ryabitsev; +Cc: meta

Konstantin Ryabitsev <konstantin@linuxfoundation.org> wrote:
> Hello:
> 
> I was having some trouble using "make check" on the Fedora build system:
> 
> #   Failed test 'seen set from rename'
> #   at t/lei-watch.t line 61.
> #                   '/tmp/pi-lei-watch-11080-FYz2/lei-daemon/md2/cur/9bf1002c49eb075df47247b74d69bcd555e23422=99:2,'
> #     doesn't match '(?^:S\z)'
> # [
> #   '/tmp/pi-lei-watch-11080-FYz2/lei-daemon/md2/cur/9bf1002c49eb075df47247b74d69bcd555e23422=99:2,'
> # ]
> 
> This wasn't happening in my own chroot builds, so I'm suspecting that the
> faster system on the Fedora build infra side is causing this failure,
> therefore perhaps some kind of race condition. 

Hmm, I thought I fixed it...  Does increasing the tick sleep time help?

diff --git a/t/lei-watch.t b/t/lei-watch.t
index 9158571c..8126b707 100644
--- a/t/lei-watch.t
+++ b/t/lei-watch.t
@@ -49,13 +49,13 @@ test_lei(sub {
 	lei_ok 'ls-watch';
 	like($lei_out, qr/^\Qmaildir:$md\E$/sm, 'maildir shown');
 	lei_ok qw(q mid:testmessage@example.com -o), $md, '-I', "$ro_home/t1";
 	my @f = glob("$md/cur/*:2,");
 	is(scalar(@f), 1, 'got populated maildir with one result');
 	rename($f[0], "$f[0]S") or xbail "rename $!"; # set (S)een
-	tick($have_fast_inotify ? 0.1 : 2.1); # always needed for 1 CPU systems
+	tick($have_fast_inotify ? 1 : 5); # always needed for 1 CPU systems
 	lei_ok qw(note-event done); # flushes immediately (instead of 5s)
 
 	lei_ok qw(q mid:testmessage@example.com -o), $md2, '-I', "$ro_home/t1";
 	my @f2 = glob("$md2/*/*");
 	is(scalar(@f2), 1, 'got one result');
 	like($f2[0], qr/S\z/, 'seen set from rename') or diag explain(\@f2);

Maybe 1s is too much and 0.2s is enough.

> https://download.copr.fedorainfracloud.org/results/icon/b4/fedora-35-x86_64/02928611-public-inbox/build.log.gz

"prove --state=save -bvw -j3", so 2 cores?  Any idea what
CONFIG_HZ is on that system?

> Switching to "make test" seems to help, which is what I've done for now.

OK, so it could be load related.  There could probably be a way
to "subscribe" for updates to lei-daemon so sleeping wouldn't be
necessary.  I'll see abouit it next week, got some other stuff
to take care of...

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: test: 'seen set from rename' potentially racy
  2021-11-04 18:51 ` Eric Wong
@ 2022-02-13 21:01   ` Eric Wong
  0 siblings, 0 replies; 3+ messages in thread
From: Eric Wong @ 2022-02-13 21:01 UTC (permalink / raw)
  To: Konstantin Ryabitsev; +Cc: meta

Eric Wong <e@80x24.org> wrote:
> Konstantin Ryabitsev <konstantin@linuxfoundation.org> wrote:
> > Hello:
> > 
> > I was having some trouble using "make check" on the Fedora build system:
> > 
> > #   Failed test 'seen set from rename'
> > #   at t/lei-watch.t line 61.
> > #                   '/tmp/pi-lei-watch-11080-FYz2/lei-daemon/md2/cur/9bf1002c49eb075df47247b74d69bcd555e23422=99:2,'
> > #     doesn't match '(?^:S\z)'
> > # [
> > #   '/tmp/pi-lei-watch-11080-FYz2/lei-daemon/md2/cur/9bf1002c49eb075df47247b74d69bcd555e23422=99:2,'
> > # ]
> > 
> > This wasn't happening in my own chroot builds, so I'm suspecting that the
> > faster system on the Fedora build infra side is causing this failure,
> > therefore perhaps some kind of race condition. 
> 
> Hmm, I thought I fixed it...  Does increasing the tick sleep time help?

Nope, 5fb5b6d1a62b74b3 (t/lei-watch: test with with higher sleep, 2021-11-10)
didn't help...

> 
> > https://download.copr.fedorainfracloud.org/results/icon/b4/fedora-35-x86_64/02928611-public-inbox/build.log.gz
> 
> "prove --state=save -bvw -j3", so 2 cores?  Any idea what
> CONFIG_HZ is on that system?
> 
> > Switching to "make test" seems to help, which is what I've done for now.
> 
> OK, so it could be load related.  There could probably be a way
> to "subscribe" for updates to lei-daemon so sleeping wouldn't be
> necessary.  I'll see abouit it next week, got some other stuff
> to take care of...

That's on the table in case I get my mind back or somebody else
helps.  I haven't been able to work on anything requiring
original thought in months (not that it's ever been great), so I
think disabling flaky tests for now is the least bad option:

---------------8<-----------
Subject: [PATCH] t/lei-*watch: disable flaky tests by default for now

Properly fixing these tests is too difficult for me at the
moment, so just disable these tests for now.  A proper fix and
fleshing out support for inotify will hopefully happen at some
point.
---
 t/lei-auto-watch.t | 1 +
 t/lei-watch.t      | 1 +
 2 files changed, 2 insertions(+)

diff --git a/t/lei-auto-watch.t b/t/lei-auto-watch.t
index d5661ae5..f871188d 100644
--- a/t/lei-auto-watch.t
+++ b/t/lei-auto-watch.t
@@ -3,6 +3,7 @@
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict; use v5.10.1; use PublicInbox::TestCommon;
 use File::Basename qw(basename);
+plan skip_all => "TEST_FLAKY not enabled for $0" if !$ENV{TEST_FLAKY};
 my $have_fast_inotify = eval { require Linux::Inotify2 } ||
 	eval { require IO::KQueue };
 $have_fast_inotify or
diff --git a/t/lei-watch.t b/t/lei-watch.t
index e6066033..24d9f5c8 100644
--- a/t/lei-watch.t
+++ b/t/lei-watch.t
@@ -3,6 +3,7 @@
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict; use v5.10.1; use PublicInbox::TestCommon;
 use File::Path qw(make_path remove_tree);
+plan skip_all => "TEST_FLAKY not enabled for $0" if !$ENV{TEST_FLAKY};
 require_mods('lei');
 my $have_fast_inotify = eval { require Linux::Inotify2 } ||
 	eval { require IO::KQueue };

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-02-13 21:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-04 13:43 test: 'seen set from rename' potentially racy Konstantin Ryabitsev
2021-11-04 18:51 ` Eric Wong
2022-02-13 21:01   ` Eric Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).