On 2019-02-09 11:38:09, michelle@sorbs.net wrote:
Show quoted text> Slaven_Rezic via RT wrote:
> > Sat Feb 09 11:21:49 2019: Request 128467 was acted upon.
> > Transaction: Ticket created by SREZIC
> > Queue: Locked-Storage
> > Subject: t/03-store-get.t fails on most systems (1.07)
> > Broken in: (no value)
> > Severity: (no value)
> > Owner: Nobody
> > Requestors: SREZIC@cpan.org
> > Status: new
> > Ticket <URL:
https://rt.cpan.org/Ticket/Display.html?id=128467 >
> >
> >
> > On most of my smokers t/03-store-get.t fails:
> >
> > ...
> > # Failed test 'Retrieve Data'
> > # at t/03-store-get.t line 15.
> > # got: undef
> > # expected: 'Hello World!'
> > # Looks like you failed 1 test of 2.
> > t/03-store-get.t ..
> > Dubious, test returned 1 (wstat 256, 0x100)
> > Failed 1/2 subtests
> > ...
> >
> > There are a couple of systems where this test is passing, however I
> > don't see a os/perlversion pattern.
>
> Hmm.. you'd need to check the memory (possibly using $ls->dump) to see
> if the store actually put the data in the memory
I did so on one system (ubuntu 18.04, perl 5.29.7) and got
0 48 65 6c 6c 6f 20 57 6f 72 6c 64 21 00 00 00 00 Hello Wo rld!....
16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
(more zeroes following)
4080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
Still it failed:
# Failed test 'Retrieve Data'
# at t/03-store-get.t line 16.
# got: undef
# expected: 'Hello World!'
# Looks like you failed 1 test of 2.
t/03-store-get.t .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/2 subtests
Show quoted text> - I think I need to
> really pull my finger out and check for OS errors (I wrote it as
> something quick for a project I'm working on which it just works on)
> it's possible that the os/perlversion pattern might present itself
> when
> you check the default page size vs RLIMIT_MEMLOCK for a user....
> because
> of the fact the fact mlock() will only lock a page (multiples thereof)
> I
> don't set what bytes are requested instead allocating a full page
> (multiple therefore based on the ->new parameter).. if the default
> pagesize is larger than RLIMIT_MEMLOCK it is likely to make all tests
> fail in a variety of obscure ways (most of which can't be caught in
> any
> useful way.) Similarly if the getpagesize returns 0 I hate to think
> what
> would happen... it just wouldn't work. Otherwise the only thing I can
> think of would be if there is threaded tests and the ->store happens
> after the ->get.. shouldn't happen because I explicitly set "seq:
> t/*.t"
> which according to my reading of the docs will force the testers to
> test
> in a single thread/sequence order.
Actually this is not a problem on my smokers --- I always test without -j and shuffle.