Skip Menu |

This queue is for tickets about the POE CPAN distribution.

Report information
The Basics
Id: 43252
Status: resolved
Priority: 0/
Queue: POE

People
Owner: Nobody in particular
Requestors: reg-addy [...] gmx.net
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 1.269
Fixed in: (no value)



Subject: t/10_units/04_drivers/01_sysrw.t test failure
Date: Fri, 13 Feb 2009 12:24:40 +0100
To: bug-POE [...] rt.cpan.org
From: reg-addy [...] gmx.net
Hi, I get the following error: /opt/storage/perl/bin/perl -MExtUtils::Command::MM -e'test_harness(1, "blib/lib", "blib/arch")' t/10_units/04_drivers/01_sysrw.t t/10_units/04_drivers/01_sysrw....1..17 ok 1 - use POE::Driver::SysRW; ok 2 - disallow zero or negative block sizes ok 3 - disallow zero or negative block sizes ok 4 - disallow unknown parameters ok 5 - get() returns undef on error ok 6 - get() sets $! on error (Bad file number) ok 7 - buffered 0 octets on empty put() ok 8 - no messages buffered ok 9 - first put: buffer contains 40 octets (should be 40) ok 10 - one message buffered ok 11 - second put: buffer contains 85 octets (should be 85) not ok 12 - flushed 131157 octets == read 66645 octets # Failed test 'flushed 131157 octets == read 66645 octets' # at t/10_units/04_drivers/01_sysrw.t line 122. ok 13 - buffer exhausted (got 0 wanted 0) ok 14 - driver returns undef on eof ok 15 - $! is clear on eof ok 16 - put() returns octets left on error ok 17 - put() sets $! nonzero on error # Looks like you failed 1 test of 17. dubious Test returned status 1 (wstat 256, 0x100) DIED. FAILED test 12 Failed 1/17 tests, 94.12% okay Failed Test Stat Wstat Total Fail List of Failed ------------------------------------------------------------------------------- t/10_units/04_drivers/01_sysrw.t 1 256 17 1 12 Failed 1/1 test scripts. 1/17 subtests failed. Files=1, Tests=17, 1 wallclock secs ( 0.06 cusr + 0.01 csys = 0.07 CPU) Failed 1/1 test programs. 1/17 subtests failed. Version: POE-1.003 # uname -a SunOS servername 5.10 Generic_138889-03 i86pc i386 i86pc #/opt/storage/perl/bin/perl -V Summary of my perl5 (revision 5 version 8 subversion 9) configuration: Platform: osname=solaris, osvers=2.10, archname=i86pc-solaris uname='sunos servername 5.10 generic_138889-03 i86pc i386 i86pc ' config_args='-Dcc=gcc -Dprefix=/opt/storage/perl' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -DPERL_USE_SAFE_PUTENV', optimize='-O', cppflags='-fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='3.4.6', gccosandvers='solaris2.10' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='gcc', ldflags =' -L/usr/local/lib ' libpth=/usr/local/lib /usr/lib /usr/ccs/lib /usr/ccs/lib/amd64/lib libs=-lsocket -lnsl -ldl -lm -lc perllibs=-lsocket -lnsl -ldl -lm -lc libc=, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: PERL_MALLOC_WRAP PERL_USE_SAFE_PUTENV USE_FAST_STDIO USE_LARGE_FILES USE_PERLIO Built under solaris Compiled at Feb 11 2009 17:39:19 @INC: /opt/storage/perl/lib/5.8.9/i86pc-solaris /opt/storage/perl/lib/5.8.9 /opt/storage/perl/lib/site_perl/5.8.9/i86pc-solaris /opt/storage/perl/lib/site_perl/5.8.9 . bye -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger01
I'm sorry, but this ticket will need to wait until I have a sunos machine upon which I can develop the fix. The bug is highly machine-dependent, and I have not been able to reproduce it so far.
Gérard Henry was kind enough to donate time on a SunOS shell. I was able to fix this in revision 2544. This fix uncovered another test failure on SunOS, so there are still some issues to work out before a new release. Thank you for the bug report, and I apologize for the delay.
Subject: t/10_units/04_drivers/01_sysrw.t test failure on Win32
I've got exactly the same test failing on Win32 with POE 1.269. This is "Win32 strawberryperl 5.10.0.6 #1 Mon Jul 20 00:01:14 2009 i386" The test 12 fails every time, with differents "read" value each time. C:\strawberry\cpan\build\POE-1.269-__vuuA>prove -v -Iblib\lib t\10_units\04_drivers\01_sysrw.t t\10_units\04_drivers\01_sysrw.t .. 1..17 ok 1 - use POE::Driver::SysRW; ok 2 - disallow zero or negative block sizes ok 3 - disallow zero or negative block sizes ok 4 - disallow unknown parameters ok 5 - get() returns undef on error ok 6 - get() sets $! on error (Bad file descriptor) ok 7 - buffered 0 octets on empty put() ok 8 - no messages buffered ok 9 - first put: buffer contains 40 octets (should be 40) ok 10 - one message buffered ok 11 - second put: buffer contains 85 octets (should be 85) not ok 12 - flushed 1048661 octets == read 30321 octets # Failed test 'flushed 1048661 octets == read 30321 octets' # at t\10_units\04_drivers\01_sysrw.t line 122. ok 13 - buffer exhausted (got 0 wanted 0) ok 14 - driver returns undef on eof ok 15 - $! is clear on eof ok 16 - put() returns octets left on error ok 17 - put() sets $! nonzero on error # Looks like you failed 1 test of 17. Dubious, test returned 1 (wstat 256, 0x100) Failed 1/17 subtests -- Olivier Mengué - http://o.mengue.free.fr/
Sorry, but I haven't been able to reproduce it here. I'm using Strawberry v5.10.0, on the Vista MS open source testing farm, and the latest POE from the subversion repository. Got a shell that I can borrow on the affected machine? :) On Wed Sep 30 16:42:48 2009, DOLMEN wrote: Show quoted text
> I've got exactly the same test failing on Win32 with POE 1.269. > This is "Win32 strawberryperl 5.10.0.6 #1 Mon Jul 20 00:01:14 2009 i386" > > The test 12 fails every time, with differents "read" value each time. > > > C:\strawberry\cpan\build\POE-1.269-__vuuA>prove -v -Iblib\lib > t\10_units\04_drivers\01_sysrw.t > t\10_units\04_drivers\01_sysrw.t .. > 1..17 > ok 1 - use POE::Driver::SysRW; > ok 2 - disallow zero or negative block sizes > ok 3 - disallow zero or negative block sizes > ok 4 - disallow unknown parameters > ok 5 - get() returns undef on error > ok 6 - get() sets $! on error (Bad file descriptor) > ok 7 - buffered 0 octets on empty put() > ok 8 - no messages buffered > ok 9 - first put: buffer contains 40 octets (should be 40) > ok 10 - one message buffered > ok 11 - second put: buffer contains 85 octets (should be 85) > > not ok 12 - flushed 1048661 octets == read 30321 octets > # Failed test 'flushed 1048661 octets == read 30321 octets' > # at t\10_units\04_drivers\01_sysrw.t line 122. > ok 13 - buffer exhausted (got 0 wanted 0) > ok 14 - driver returns undef on eof > ok 15 - $! is clear on eof > ok 16 - put() returns octets left on error > ok 17 - put() sets $! nonzero on error > # Looks like you failed 1 test of 17. > Dubious, test returned 1 (wstat 256, 0x100) > Failed 1/17 subtests
I still can't reproduce this in Windows. Both Strawberry and ActivePerl succeed. I may finally have a system upon which to test this problem. I have a contemporary machine that can run virtualbox and (hopefuly) Solaris therein. I won't know until the DVD iso finishes downloading... several hours from now.
Unable to reproduce on either Solaris or Windows. n# perl t/10_units/04_drivers/01_sysrw.t 1..17 ok 1 - use POE::Driver::SysRW; ok 2 - disallow zero or negative block sizes ok 3 - disallow zero or negative block sizes ok 4 - disallow unknown parameters ok 5 - get() returns undef on error ok 6 - get() sets $! on error (Bad file number) ok 7 - buffered 0 octets on empty put() ok 8 - no messages buffered ok 9 - first put: buffer contains 40 octets (should be 40) ok 10 - one message buffered ok 11 - second put: buffer contains 85 octets (should be 85) ok 12 - flushed 131157 octets == read 131157 octets ok 13 - buffer exhausted (got 0 wanted 0) ok 14 - driver returns undef on eof ok 15 - $! is clear on eof ok 16 - put() returns octets left on error ok 17 - put() sets $! nonzero on error unknown# prove t/10_units/04_drivers/01_sysrw.t t/10_units/04_drivers/01_sysrw....ok All tests successful. Files=1, Tests=17, 0 wallclock secs ( 0.16 cusr + 0.16 csys = 0.32 CPU) unknown# n# perl -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=solaris, osvers=2.8, archname=i86pc-solaris-thread-multi uname='sunos build8x 5.8 generic_117351-61 i86pc i386 i86pc' config_args='' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=de fine useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='/opt/studio/SOS11/SUNWspro/bin/cc', ccflags ='-D_REENTRANT -xO3 -xarch=3 86 -I/opt/csw/bdb47/include -I/opt/csw/include -D_LARGEFILE_SOURCE -D_FILE_OFFSE T_BITS=64', optimize='-xO3 -xarch=386', cppflags='-D_REENTRANT -xO3 -xarch=386 -I/opt/csw/bdb47/include -I/opt/csw/i nclude' ccversion='Sun C 5.8 Patch 121016-08 2009/04/20', gccversion='', gccosandver s='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize =8 alignbytes=4, prototype=define Linker and Libraries: ld='/opt/studio/SOS11/SUNWspro/bin/cc', ldflags ='-xarch=386 -L/opt/csw/lib/ libperl.so -L/opt/csw/lib -L/opt/csw/bdb47/lib -L/usr/lib -L/usr/ccs/lib -L/lib' libpth=/usr/lib /usr/ccs/lib /lib /opt/csw/lib libs=-lsocket -lnsl -lgdbm -ldb-4.7 -ldl -lm -lpthread -lc -lperl perllibs=-lsocket -lnsl -ldb-4.7 -ldl -lm -lpthread -lc -lperl libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so.5.8.8 gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-R /opt/csw/lib' cccdlflags='-KPIC', lddlflags='-G -L/opt/csw/lib/libperl.so -L/opt/csw/lib - L/opt/csw/bdb47/lib -L/usr/lib -L/usr/ccs/lib -L/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API USE_SITECUSTOMIZE Built under solaris Compiled at Nov 12 2009 10:59:52 %ENV: PERL5LIB="/root/poe/poe/lib:/root/poe/poe-test-loops/lib" @INC: /root/poe/poe/lib /root/poe/poe-test-loops/lib /opt/csw/lib/perl/5.8.8 /opt/csw/share/perl/5.8.8 /opt/csw/lib/perl/site_perl /opt/csw/share/perl/site_perl /opt/csw/share/perl/site_perl /opt/csw/lib/perl/csw /opt/csw/share/perl/csw /opt/csw/share/perl/csw . unknown#
From: 2010 [...] denny.me
On Wed Dec 30 15:09:56 2009, RCAPUTO wrote: Show quoted text
> Unable to reproduce on either Solaris or Windows.
I have this same subtest failing on Solaris with POE 1.289 : $ uname -a SunOS swapz01 5.10 Generic_139556-08 i86pc i386 i86pc $ perl -v This is perl, v5.8.4 built for i86pc-solaris-64int (with 31 registered patches, see perl -V for more detail) cpan[1]> install POE [...] Checking if your kit is complete... Looks good Writing Makefile for POE /usr/bin/perl mylib/gen-tests.perl lib/POE.pm [...] RCAPUTO/POE-1.289.tar.gz /usr/ccs/bin/make -- OK Running make test /usr/bin/perl mylib/gen-tests.perl lib/POE.pm PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "- e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/*/*.t t/*/*/*.t t/00_info.t ........................................ 2/2 # Testing POE 1.289, POE::Test::Loops 1.035, Perl 5.008004, /usr/bin/perl on solaris [...] t/10_units/04_drivers/01_sysrw.t ................... 1/17 # Failed test 'flushed 131157 octets == read 65621 octets' # at t/10_units/04_drivers/01_sysrw.t line 112. # Looks like you failed 1 test of 17. t/10_units/04_drivers/01_sysrw.t ................... Dubious, test returned 1 (wstat 256, 0x100) Failed 1/17 subtests [...] ... I've just discovered something strange while re-running the failing install to get you the output above. I killed the install halfway through the tests with control-C, grabbed some output and pasted it here, ran the install again, and now this subtest is passing. Previously it had failed many times. Next, I exited the CPAN shell, came back in, and ran the install yet again, and the subtest still passes. I have no idea what would cause its behaviour to change like this after so many fails, but maybe you can take a guess, or maybe knowing this can happen will be helpful to you when trying to track the error in future. The install is now failing with the following errors instead: [...] t/30_loops/io_poll/wheel_readline.t ................ Can't call method "get" on an undefined value at /nfs/common/perl5lib/lib/site_perl/POE/Test/Loops/wheel_readline.pm line 339. Compilation failed in require at t/30_loops/io_poll/wheel_readline.t line 25. # Looks like your test exited with 2 before it could output anything. t/30_loops/io_poll/wheel_readline.t ................ Dubious, test returned 2 (wstat 512, 0x200) Failed 6/6 subtests [...] t/30_loops/select/wheel_readline.t ................. Can't call method "get" on an undefined value at /nfs/common/perl5lib/lib/site_perl/POE/Test/Loops/wheel_readline.pm line 339. Compilation failed in require at t/30_loops/select/wheel_readline.t line 20. # Looks like your test exited with 2 before it could output anything. t/30_loops/select/wheel_readline.t ................. Dubious, test returned 2 (wstat 512, 0x200) Failed 6/6 subtests [...] Test Summary Report ------------------- t/30_loops/io_poll/wheel_readline.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: Bad plan. You planned 6 tests but ran 0. t/30_loops/select/wheel_readline.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: Bad plan. You planned 6 tests but ran 0. Files=148, Tests=4109, 311 wallclock secs ( 0.98 usr 0.80 sys + 15.55 cusr 11.72 csys = 29.05 CPU) Result: FAIL Failed 2/148 test programs. 0/4109 subtests failed. Finally, I tried a 'force install POE'. This has returend me to the original error condition, the subtest fail which this bug report is about. I'm afraid I can't offer you a shell on the machine, it's inside a financial institution. If there's anything useful I can do here to help you track any of this down, please let me know - I'm here for two more weeks before my contract finishes. Regards, Denny
I believe the POE::Wheel::ReadLine test failures have been fixed in the repository, and they should be released in the next version. You can review the changes here: https://github.com/rcaputo/poe-test-loops/commit/881ccb7c4a73550db6a27de9e438237a25665ecb Please reopen this ticket if it's not fixed in the next POE release. The 01_sysrw.t test failure is still a mystery, sorry. Thank you for the bug reports.