Skip Menu |

This queue is for tickets about the IPC-Run3 CPAN distribution.

Report information
The Basics
Id: 50235
Status: resolved
Priority: 0/
Queue: IPC-Run3

People
Owner: Nobody in particular
Requestors: jeff [...] zeroclue.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.043
Fixed in: (no value)



Subject: make test hangs in IPC-Run3.t on threaded perl 5.10.1 on OpenBSD 4.5
cpan[3]> install IPC::Run3 Running install for module 'IPC::Run3' Running make for R/RJ/RJBS/IPC-Run3-0.043.tar.gz Has already been unwrapped into directory /home/jeff/.cpan/build/IPC-Run3-0.043- K3gK85 Has already been made Running make test PERL_DL_NONLAZY=1 /usr/local/perl-5.10.1-threads/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/fd_leak.t ................... ok t/fork.t ...................... ok t/IPC-Run3-ProfArrayBuffer.t .. ok t/IPC-Run3-profiling.t ........ ok t/IPC-Run3-ProfLogger.t ....... ok t/IPC-Run3-ProfLogReader.t .... ok t/IPC-Run3-ProfPP.t ........... ok t/IPC-Run3-ProfReporter.t ..... ok t/IPC-Run3.t .................. 1/28 ^C RJBS/IPC-Run3-0.043.tar.gz /usr/bin/make test -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports RJBS/IPC-Run3-0.043.tar.gz Warning (usually harmless): 'YAML' not installed, will not store persistent state Running make install make test had returned bad status, won't install without force Failed during this command: RJBS/IPC-Run3-0.043.tar.gz : make_test NO jeff@minimunch:~/Code/perl-5.10.1 $ /usr/local/perl-5.10.1-threads/bin/perl -V Summary of my perl5 (revision 5 version 10 subversion 1) configuration: Platform: osname=openbsd, osvers=4.5, archname=OpenBSD.i386-openbsd-thread-multi-64int uname='openbsd minimunch.int.zeroclue.org 4.5 generic#1749 i386 ' config_args='' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-pthread -fno-strict-aliasing -pipe -fstack-protector - I/usr/local/include', optimize='-O2', cppflags='-pthread -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include' ccversion='', gccversion='3.3.5 (propolice)', gccosandvers='openbsd4.5' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags ='-pthread -Wl,-E -fstack-protector -L/usr/local/lib' libpth=/usr/local/lib /usr/lib libs=-lgdbm -lm -lutil -lc perllibs=-lm -lutil -lc libc=/usr/lib/libc.so.50.1, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' cccdlflags='-DPIC -fPIC ', lddlflags='-shared -fPIC -L/usr/local/lib -fstack-protector' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under openbsd Compiled at Sep 14 2009 23:10:12 @INC: /usr/local/perl-5.10.1-threads/lib/5.10.1/OpenBSD.i386-openbsd-thread-multi-64int /usr/local/perl-5.10.1-threads/lib/5.10.1 /usr/local/perl-5.10.1-threads/lib/site_perl/5.10.1/OpenBSD.i386-openbsd-thread- multi-64int /usr/local/perl-5.10.1-threads/lib/site_perl/5.10.1 .
Jeff, can you run the hanging test under OpenBSD's equivalent of strace (ktrace?) so that we can see what's going on under the hood? Cheers, Roderich
It appears to be hanging on line 211 of IPC-Run3.t: system $^X, '-e', 0; I have also experienced a few hangs on the first test in that file.
From: jeff [...] zeroclue.com
On Tue Oct 06 08:40:46 2009, RSCHUPP wrote: Show quoted text
> Jeff, > > can you run the hanging test under OpenBSD's equivalent of strace > (ktrace?) so that we can see what's going on under the hood? > > Cheers, Roderich
Hi Roderich, I've attached a gzip'd file of the output of kdump (run on the ktrace dump file) run on the attached test file that isolates the case that consistently hangs for me. Note that there's no run3 call - it's the system call that's hanging. I can give you access to my OpenBSD 4.5 smoker if you'd like - please email me if you're interested.
#!perl -w use Test qw( plan ); use IPC::Run3; use strict; plan tests => 1; my $system_child_error = eval { local $SIG{CHLD} = "IGNORE"; system $^X, '-e', 0; $?; };
Download kdump.out.gz
application/x-gzip 156.3k

Message body not shown because it is not plain text.

I am running into the same bug in OpenBSD 3.9 with both threaded perl 5.10.0, and 5.10.1 (which I upgraded to in the hope of blindly working around bug!) The failing/hanging test is actually the last test in t/IPC-Run3.t : eval {local $SIG{CHLD} = "IGNORE"; system $^X, '-e', 0; $?;}; will hang. Remove "local $SIG{CHLD} = 'IGNORE'" and it will not hang. In fact this one-liner hangs on my system: perl -e '$SIG{CHLD}="IGNORE"; system qw(perl -e 1)' Might it be a bug in perl itself? I ran ktrace/kdump but the output is quite large and I don't know what part of it is important. Uploading a gzip of it for you, it is a trace of the one-liner above. Eventually I hit CTRL-Z to suspend it & "kill %1" to terminate it.
Download perl_oneliner_hang.txt.gz
application/x-gzip 12.5k

Message body not shown because it is not plain text.

On Fri Oct 16 18:23:58 2009, fecund wrote: Show quoted text
> In fact this one-liner hangs on my system: > > perl -e '$SIG{CHLD}="IGNORE"; system qw(perl -e 1)'
that hangs perl for me too (OpenBSD 4.5, threaded perl 5.10.1)
Subject: Re: [rt.cpan.org #50235] make test hangs in IPC-Run3.t on threaded perl 5.10.1 on OpenBSD 4.5
Date: Sat, 17 Oct 2009 14:58:35 +0200
To: bug-IPC-Run3 [...] rt.cpan.org
From: Roderich Schupp <schupp [...] argumentum.de>
On Sat, Oct 17, 2009 at 12:47 AM, Jeff Lavallee via RT <bug-IPC-Run3@rt.cpan.org> wrote: Show quoted text
>> perl -e '$SIG{CHLD}="IGNORE"; system qw(perl -e 1)'
> > that hangs perl for me too (OpenBSD 4.5, threaded perl 5.10.1)
I think that last test should be taken out and shot. Messing with SIGCHLD='IGNORE' is like walking into a mine field. Cheers, Roderich
I believe this was fixed in 0.045 -- rjbs
From: jeff [...] zeroclue.com
Confirmed that 0.46 passes all tests on a threaded perl 5.10.1 on OpenBSD. On Wed Sep 25 21:35:37 2013, RJBS wrote: Show quoted text
> I believe this was fixed in 0.045