Subject: | Intermittent test failures on perl5.10.1/5.14.2 |
As mentioned briefly in IRC a few days ago...
Installing the current (0.20) version from CPAN seems to hang on the
15share-child.t step (tried leaving for 24h just in case). Running
manually gives different results, guessing there's some kind of race
condition - on one run I get the following output:
~/.cpan/build/IO-Async-Loop-Glib-0.20-gE3LJ0$ prove -v -b t/15share-child.t
t/15share-child.t ..
1..2
*** unhandled exception in callback:
*** Undefined callback for signal CHLD at t/15share-child.t line 36
*** ignoring at
/home/tom/.cpan/build/IO-Async-Loop-Glib-0.20-gE3LJ0/blib/lib/IO/Async/Loop/Glib.pm
line 311.
Tried replacing the $loop->once line with this:
do { warn $loop; $loop->loop_once } until defined $glib_status and
defined $ioasync_status;
in an attempt to see how many iterations we get through:
~/.cpan/build/IO-Async-Loop-Glib-0.20-gE3LJ0$ prove -v -b
t/15share-child.t
t/15share-child.t ..
1..2
IO::Async::Loop::Glib=HASH(0xabc650) at t/15share-child.t line 36.
IO::Async::Loop::Glib=HASH(0xabc650) at t/15share-child.t line 36.
ok 1 - Glib child
ok 2 - IO::Async child
ok
All tests successful.
Files=1, Tests=2, 0 wallclock secs ( 0.03 usr 0.00 sys + 0.04 cusr
0.03 csys = 0.10 CPU)
Result: PASS
and the earlier error seems to happen after two iterations:
~/.cpan/build/IO-Async-Loop-Glib-0.20-gE3LJ0$ prove -v -b
t/15share-child.t
t/15share-child.t ..
1..2
IO::Async::Loop::Glib=HASH(0x1ed0650) at t/15share-child.t line 36.
IO::Async::Loop::Glib=HASH(0x1ed0650) at t/15share-child.t line 36.
*** unhandled exception in callback:
*** Undefined callback for signal CHLD at t/15share-child.t line 36
*** ignoring at
/home/tom/.cpan/build/IO-Async-Loop-Glib-0.20-gE3LJ0/blib/lib/IO/Async/Loop/Glib.pm
line 311.
IO::Async::Loop::Glib=HASH(0x1ed0650) at t/15share-child.t line 36.
Doesn't appear to fail under perl -d (ran 20 times with no failures).
Above output is from 5.14.2, although the same happens with 5.10.1. Perl
config:
$ perl -V
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
Platform:
osname=linux, osvers=2.6.35-30-generic, archname=x86_64-linux
uname='linux roku 2.6.35-30-generic #56-ubuntu smp mon jul 11
20:01:08 utc 2011 x86_64 gnulinux '
config_args='-de -Dprefix=/home/tom/perl5/perlbrew/perls/perl-5.14.2'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2',
cppflags='-fno-strict-aliasing -pipe -fstack-protector
-I/usr/local/include'
ccversion='', gccversion='4.4.5', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/../lib /usr/lib/../lib /lib /usr/lib
/usr/lib/x86_64-linux-gnu /lib64 /usr/lib64
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=/lib/libc-2.12.1.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.12.1'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib
-fstack-protector'
Characteristics of this binary (from libperl):
Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
PERL_PRESERVE_IVUV USE_64_BIT_ALL USE_64_BIT_INT
USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
Built under linux
Compiled at Oct 3 2011 02:24:00
%ENV:
PERL5LIB="/home/tom/.cpan:/home/tom/.cpan/lib:/home/tom/.cpan/lib/perl5:/home/tom/.cpan/lib/perl5/site_perl:/home/tom/.cpan/lib/perl5/5.10.0/i486-linux-gnu-thread-multi:/home/tom/.cpan:/home/tom/.cpan/lib:/home/tom/.cpan/lib/perl5:/home/tom/.cpan/lib/perl5/site_perl:/home/tom/.cpan/lib/perl5/5.10.0/i486-linux-gnu-thread-multi:/home/tom/.cpan:/home/tom/.cpan/lib:/home/tom/.cpan/lib/perl5:/home/tom/.cpan/lib/perl5/site_perl:/home/tom/.cpan/lib/perl5/5.10.0/i486-linux-gnu-thread-multi:"
PERL5OPT=""
PERL5_CPANPLUS_IS_RUNNING="29643"
PERL5_CPAN_IS_RUNNING="29643"
PERLBREW_HOME="/home/tom/.perlbrew"
PERLBREW_PATH="/home/tom/perl5/perlbrew/bin:/home/tom/perl5/perlbrew/perls/perl-5.14.2/bin"
PERLBREW_PERL="perl-5.14.2"
PERLBREW_ROOT="/home/tom/perl5/perlbrew"
PERLBREW_VERSION="0.29"
PERL_LWP_SSL_VERIFY_HOSTNAME="0"
PERL_MM_USE_DEFAULT="1"
@INC:
/home/tom/.cpan
/home/tom/.cpan/lib
/home/tom/.cpan/lib/perl5
/home/tom/.cpan/lib/perl5/site_perl
/home/tom/.cpan/lib/perl5/5.10.0/i486-linux-gnu-thread-multi
/home/tom/.cpan
/home/tom/.cpan/lib
/home/tom/.cpan/lib/perl5
/home/tom/.cpan/lib/perl5/site_perl
/home/tom/.cpan/lib/perl5/5.10.0/i486-linux-gnu-thread-multi
/home/tom/.cpan
/home/tom/.cpan/lib
/home/tom/.cpan/lib/perl5
/home/tom/.cpan/lib/perl5/site_perl
/home/tom/.cpan/lib/perl5/5.10.0/i486-linux-gnu-thread-multi
/home/tom/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/x86_64-linux
/home/tom/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2
/home/tom/perl5/perlbrew/perls/perl-5.14.2/lib/5.14.2/x86_64-linux
/home/tom/perl5/perlbrew/perls/perl-5.14.2/lib/5.14.2
.
and as for glib, it's the standard Ubuntu 10.10 package, v2.26.1 from
libglib2.0-0.
cheers,
Tom