Closed brong closed 3 years ago
I haven't looked at this PR properly yet, but I'm skimming through the logs from the valgrind I ran a couple of days ago and it looks like Master.sighup_recycling
is another one with timing problems when run under valgrind. Maybe a similar shape of fix might help.
This particular test is actually a frequent flier for sporadic unreproduceable failures anyway (it's been a while since I've seen it, but it pops up maybe every few months). I've looked at this a bunch of times over the years but not made any meaningful progress on understanding what or why, but maybe hardening the timing to work under valgrind could help. If you wanna look at it while you're thinking about this sorta thing, great; if you don't get around to it, I'll dig into it later.
n.b. I've only run the valgrind run once so far, so it's possible this isn't actually "reliably fails under valgrind", it might just be the same sporadic problem popping up by coincidence!
Master.sighup_recycling
Perl exception: Timed out waiting for lemmings to reach the expected census
at Cassandane/Util/Wait.pm line 66.
Cassandane::Util::Wait::timed_wait(CODE(0x5569c3cecc28), "description", "lemmings to reach the expected census") called at Cassandane/Cyrus/Master.pm line 224
Cassandane::Cyrus::Master::lemming_wait(Cassandane::Cyrus::Master=HASH(0x5569c21df910), "foo", HASH(0x5569c3cd7940)) called at Cassandane/Cyrus/Master.pm line 1056
Cassandane::Cyrus::Master::test_sighup_recycling(Cassandane::Cyrus::Master=HASH(0x5569c21df910)) called at /usr/share/perl5/Test/Unit/TestCase.pm line 75
[...framework calls elided...]
3) Sieve.duplicate
expected 2, got 5 at Cassandane/Cyrus/Sieve.pm line 1707.
Cassandane::Cyrus::Sieve::test_duplicate(Cassandane::Cyrus::Sieve=HASH(0
[...framework calls elided...]
This one looks like it's probably a timing thing too, that's not a valgrind error
This is long enough to make sure slow valgrind doesn't break them. We were seeing spurious errors otherwise under valgrind.