Skip Menu |
 

This queue is for tickets about the forks CPAN distribution.

Report information
The Basics
Id: 51673
Status: open
Priority: 0/
Queue: forks

People
Owner: RYBSKEJ [...] cpan.org
Requestors: toddr [...] null.net
Cc:
AdminCc:

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



Subject: shared variable locking not eval safe
Download (untitled) / with headers
text/plain 177b
Hi, I have discovered that the second I use lock inside an eval, my forked process terminates. Test is attached. Note that in the second set of tests, test 2 is never reached.
Subject: fork_eval_lock.t
Download fork_eval_lock.t
text/x-perl 831b
#!perl use strict; use warnings; use Test::More; use forks; use forks::shared; my $var1 :shared; my $thr = threads->new({'context' => 'list'}, sub { fork_eval(); }); $thr->join(); my $thr2 = threads->new({'context' => 'list'}, sub { fork_eval_lock(); }); $thr2->join(); exit; sub fork_eval { ok(1, "This test reached"); my $error_message = "ERROR_MESSAGE_HERE"; eval { die($error_message); }; like($@, qr/^$error_message/, "Error message received"); done_testing(); } sub fork_eval_lock { ok(1, "This test reached"); my $error_message = "ERROR_MESSAGE_HERE"; eval { lock $var1; $var1 = 'fork'; unlock $var1; die($error_message); }; like($@, qr/^$error_message/, "Error message received but this test never reached."); done_testing(); }
Download (untitled) / with headers
text/plain 193b
An even simpler example is causing a segfault on perl: #!perl use forks; use forks::shared; my $var1 :shared; eval { lock $var1; die("This message"); }; print "I never get here\n";
Download (untitled) / with headers
text/plain 193b
An even simpler example is causing a segfault on perl: #!perl use forks; use forks::shared; my $var1 :shared; eval { lock $var1; die("This message"); }; print "I never get here\n";
Download (untitled) / with headers
text/plain 1.1k
What version of Perl and what platform are you using? Please attach the output of `perl -V` Also, what version of Test::More are you using? `perl -MTest::More -e 'print "$Test::More::VERSION\n"'` Note: Your example works for me on MacOS 10.5 (perl 5.8.8) and RHEL 5 (perl 5.8.8). I tested with forks 0.33, and Test::More 0.62 and 0.86. The original attached script works for me with the following minor changes: 1. Used forks before Test::More. See: http://search.cpan.org/~rybskej/forks- 0.33/lib/forks.pm#module_load_order:_forks_first 2. Added a test plan (tests=>4). 3. Commented out "unlock $var1;". Not sure what this was, but ithreads variables unlock automatically at end of scope. There is no interface function to unlock. 4. Commented out calls for missing subroutine done_testing(). Updated test script is attached for reference. Regards, Eric On Wed Nov 18 14:55:13 2009, toddr@null.net wrote: Show quoted text
> An even simpler example is causing a segfault on perl: > > #!perl > > use forks; > use forks::shared; > > my $var1 :shared; > > eval { > lock $var1; > die("This message"); > }; > > print "I never get here\n";
Download fork_eval_lock.t
text/x-perl 845b
#!perl use strict; use warnings; use forks; use forks::shared; use Test::More tests=>4; my $var1 :shared; my $thr = threads->new({'context' => 'list'}, sub { fork_eval(); }); $thr->join(); my $thr2 = threads->new({'context' => 'list'}, sub { fork_eval_lock(); }); $thr2->join(); exit; sub fork_eval { ok(1, "This test reached"); my $error_message = "ERROR_MESSAGE_HERE"; eval { die($error_message); }; like($@, qr/^$error_message/, "Error message received"); #done_testing(); } sub fork_eval_lock { ok(1, "This test reached"); my $error_message = "ERROR_MESSAGE_HERE"; eval { lock $var1; $var1 = 'fork'; #unlock $var1; die($error_message); }; like($@, qr/^$error_message/, "Error message received but this test never reached."); #done_testing(); }
Download (untitled) / with headers
text/plain 2.4k
This is a 64bit perl running on Snow Leopard. It did not come with the OS. $>perl -V Summary of my perl5 (revision 5 version 10 subversion 1) configuration: Platform: osname=darwin, osvers=10.0.0, archname=darwin-thread-multi-2level uname='darwin toddr.local 10.0.0 darwin kernel version 10.0.0: fri jul 31 22:47:34 pdt 2009; root:xnu-1456.1.25~1release_i386 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=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include', optimize='-O3', cppflags='-no-cpp-precomp -fno-common -DPERL_DARWIN -no-cpp-precomp -fno- strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include' ccversion='', gccversion='4.2.1 (Apple Inc. build 5646)', 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='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector - L/usr/local/lib -L/opt/local/lib' libpth=/usr/local/lib /opt/local/lib /usr/lib libs=-ldbm -ldl -lm -lutil -lc perllibs=-ldl -lm -lutil -lc libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib - L/opt/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_ALL USE_64_BIT_INT USE_FAST_STDIO USE_ITHREADS USE_LARGE_FILES USE_PERLIO Built under darwin Compiled at Oct 5 2009 13:52:26 %ENV: @INC: /usr/local/perl/510/lib/5.10.1/darwin-thread-multi-2level /usr/local/perl/510/lib/5.10.1 /usr/local/perl/510/lib/5.10.1/darwin-thread-multi-2level /usr/local/perl/510/lib/5.10.1
Download (untitled) / with headers
text/plain 349b
Test::More version is 0.94. The new Test::More design is to no longer explicitly list your test count, but rather declare done_testing() when you're done. Concerning the use of Test::More, this example fails without Test::More. I was just using it for example. Feel free to take it out and it should equally segfault (see simpler example above)
Download (untitled) / with headers
text/plain 235b
output from simple example: $>cat shfork.pl #!perl use forks; use forks::shared; my $var1 :shared; eval { lock $var1; die("This message"); }; print "I never get here\n"; $>perl shfork.pl zsh: segmentation fault perl shfork.pl
forks has been tested Perl 10.0 on a variety platforms (including OS 10.5). I've personally tested against Apple and macports Perl distributions. Can you rebuild forks (perl Makefile.PL && make && make test) from a clean forks distribution and capture the results? I'd be curious to see if there are any build warnings, related to the 64-bit OS. I've ordered 10.6, so I should have a better chance of replicating this issue soon. I'll update as progress is made. -Eric On Tue Nov 24 00:18:12 2009, toddr@null.net wrote: Show quoted text
> This is a 64bit perl running on Snow Leopard. It did not come with the > OS. > > $>perl -V > Summary of my perl5 (revision 5 version 10 subversion 1) > configuration: > > Platform: > osname=darwin, osvers=10.0.0, archname=darwin-thread-multi-2level > uname='darwin toddr.local 10.0.0 darwin kernel version 10.0.0: fri > jul 31 22:47:34 pdt > 2009; root:xnu-1456.1.25~1release_i386 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=define, uselongdouble=undef > usemymalloc=n, bincompat5005=undef > Compiler: > cc='cc', ccflags ='-fno-common -DPERL_DARWIN -no-cpp-precomp > -fno-strict-aliasing > -pipe -fstack-protector -I/usr/local/include -I/opt/local/include', > optimize='-O3', > cppflags='-no-cpp-precomp -fno-common -DPERL_DARWIN > -no-cpp-precomp -fno- > strict-aliasing -pipe -fstack-protector -I/usr/local/include > -I/opt/local/include' > ccversion='', gccversion='4.2.1 (Apple Inc. build 5646)', > 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='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' > -fstack-protector - > L/usr/local/lib -L/opt/local/lib' > libpth=/usr/local/lib /opt/local/lib /usr/lib > libs=-ldbm -ldl -lm -lutil -lc > perllibs=-ldl -lm -lutil -lc > libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, > libperl=libperl.a > gnulibc_version='' > Dynamic Linking: > dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' > cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup > -L/usr/local/lib - > L/opt/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_ALL > USE_64_BIT_INT USE_FAST_STDIO USE_ITHREADS > USE_LARGE_FILES USE_PERLIO > Built under darwin > Compiled at Oct 5 2009 13:52:26 > %ENV: > @INC: > /usr/local/perl/510/lib/5.10.1/darwin-thread-multi-2level > /usr/local/perl/510/lib/5.10.1 > /usr/local/perl/510/lib/5.10.1/darwin-thread-multi-2level > /usr/local/perl/510/lib/5.10.1
From: toddr [...] null.net
Download (untitled) / with headers
text/plain 5.8k
Basic build run. I note some warnings in test 7 cpan[1]> look forks CPAN: CPAN::SQLite loaded ok (v0.198) Database was generated on Mon, 07 Dec 2009 21:50:16 GMT Running look for module 'forks' Trying to open a subshell in the build directory... CPAN: YAML loaded ok (v0.70) CPAN: Digest::SHA loaded ok (v5.47) CPAN: Compress::Zlib loaded ok (v2.022) Checksum for /var/root/.cpan/sources/authors/id/R/RY/RYBSKEJ/forks-0.33.tar.gz ok Scanning cache /var/root/.cpan/build for sizes ............................................................................DONE CPAN: Archive::Tar loaded ok (v1.54) forks-0.33/ forks-0.33/CHANGELOG forks-0.33/CREDITS forks-0.33/forks.xs forks-0.33/lib/ forks-0.33/lib/forks/ forks-0.33/lib/forks/Devel/ forks-0.33/lib/forks/Devel/Symdump.pm forks-0.33/lib/forks/shared/ forks-0.33/lib/forks/shared/attributes.pm forks-0.33/lib/forks/shared/global_filter.pm forks-0.33/lib/forks/shared.pm forks-0.33/lib/forks/signals.pm forks-0.33/lib/forks.pm forks-0.33/lib/threads/ forks-0.33/lib/threads/shared/ forks-0.33/lib/threads/shared/array.pm forks-0.33/lib/threads/shared/handle.pm forks-0.33/lib/threads/shared/hash.pm forks-0.33/lib/threads/shared/scalar.pm forks-0.33/Makefile.PL forks-0.33/MANIFEST forks-0.33/MANIFEST.skip forks-0.33/META.yml forks-0.33/ppport.h forks-0.33/README forks-0.33/SIGNATURE forks-0.33/t/ forks-0.33/t/forks00-sigtrap.t forks-0.33/t/forks01.t forks-0.33/t/forks02.t forks-0.33/t/forks03.t forks-0.33/t/forks04.t forks-0.33/t/forks05.t forks-0.33/t/forks06.t forks-0.33/t/forks07.t forks-0.33/t/forks08.t forks-0.33/t/forks09.t forks-0.33/t/forks10.t forks-0.33/t/forks20.t forks-0.33/t/forks99.t forks-0.33/TODO forks-0.33/VERSION CPAN: File::Temp loaded ok (v0.22) Working directory is /var/root/.cpan/build/forks-0.33-b0XxyR 091208.115641 root@toddr.local (/var/root/.cpan/build/forks-0.33-b0XxyR) $>perl Makefile.PL Fixing prototypes in forks.xs Checking if your kit is complete... Looks good Writing Makefile for forks 091208.115644 root@toddr.local (/var/root/.cpan/build/forks-0.33-b0XxyR) $>make cp lib/forks/signals.pm blib/lib/forks/signals.pm cp lib/forks/shared/global_filter.pm blib/lib/forks/shared/global_filter.pm cp lib/threads/shared/array.pm blib/lib/threads/shared/array.pm cp lib/forks.pm blib/lib/forks.pm cp lib/forks/shared.pm blib/lib/forks/shared.pm cp lib/forks/Devel/Symdump.pm blib/lib/forks/Devel/Symdump.pm cp lib/forks/shared/attributes.pm blib/lib/forks/shared/attributes.pm cp lib/threads/shared/hash.pm blib/lib/threads/shared/hash.pm cp lib/threads/shared/handle.pm blib/lib/threads/shared/handle.pm cp lib/threads/shared/scalar.pm blib/lib/threads/shared/scalar.pm /usr/local/perl/510/bin/perl /usr/local/perl/510/lib/5.10.1/ExtUtils/xsubpp -typemap /usr/local/perl/510/lib/5.10.1/ExtUtils/typemap forks.xs > forks.xsc && mv forks.xsc forks.c cc -c -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include - I/opt/local/include -O3 -DVERSION=\"0.33\" -DXS_VERSION=\"0.33\" "-I/usr/local/perl/510/lib/5.10.1/darwin-thread-multi- 2level/CORE" forks.c Running Mkbootstrap for forks () chmod 644 forks.bs rm -f blib/arch/auto/forks/forks.bundle env MACOSX_DEPLOYMENT_TARGET=10.3 cc -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib -fstack-protector forks.o -o blib/arch/auto/forks/forks.bundle \ \ chmod 755 blib/arch/auto/forks/forks.bundle cp forks.bs blib/arch/auto/forks/forks.bs chmod 644 blib/arch/auto/forks/forks.bs Manifying blib/man3/forks::signals.3 Manifying blib/man3/threads::shared::array.3 Manifying blib/man3/forks::Devel::Symdump.3 Manifying blib/man3/forks::shared.3 Manifying blib/man3/forks.3 Manifying blib/man3/threads::shared::hash.3 Manifying blib/man3/threads::shared::handle.3 Manifying blib/man3/threads::shared::scalar.3 091208.115649 root@toddr.local (/var/root/.cpan/build/forks-0.33-b0XxyR) $>make test PERL_DL_NONLAZY=1 /usr/local/perl/510/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/forks00-sigtrap.t .. ok t/forks01.t .......... # # These tests exercise general API compatibility and behavior. # t/forks01.t .......... ok t/forks02.t .......... # # The following tests are a stress test for shared arrays and shared hashes # that may take a few minutes on slower machines. # t/forks02.t .......... ok t/forks03.t .......... # # The following tests check that blessing shared variables is fully transparent. # t/forks03.t .......... ok t/forks04.t .......... # # These tests exercise general API compatibility and behavior (threads.pm replacement mode). # t/forks04.t .......... ok t/forks05.t .......... # # These tests validate main thread exit values. # t/forks05.t .......... ok t/forks06.t .......... # # These tests exercise deadlock detection and resolution features of forks. # t/forks06.t .......... ok t/forks07.t .......... # # These tests check inter-thread signaling. # Signal SIGTERM received, but no signal handler set for thread 1 t/forks07.t .......... ok t/forks08.t .......... # # These tests validate overloaded sleep behavior. # t/forks08.t .......... ok t/forks09.t .......... # # These tests check shared_clone functionality. # t/forks09.t .......... ok t/forks10.t .......... # # These tests check CLONE and SKIP_CLONE functionality. # t/forks10.t .......... ok t/forks20.t .......... # # These tests validate compatibility with Thread::Queue. # t/forks20.t .......... ok t/forks99.t .......... skipped: Set the environment variable TEST_SIGNATURE to enable this test. All tests successful. Files=13, Tests=389, 156 wallclock secs ( 0.11 usr 0.04 sys + 6.79 cusr 1.93 csys = 8.87 CPU) Result: PASS
Download (untitled) / with headers
text/plain 465b
detailed output from test 07 $>prove -lvm t/forks07.t t/forks07.t .. 1..3 # # These tests check inter-thread signaling. # Signal SIGTERM received, but no signal handler set for thread 1 ok 1 - Check that thread is no longer running ok 2 - Check that thread is no longer running ok 3 - Check that custom signal handler was used ok All tests successful. Files=1, Tests=3, 13 wallclock secs ( 0.01 usr 0.01 sys + 0.17 cusr 0.04 csys = 0.23 CPU) Result: PASS
I made some mods to the test script to locate the message. I notice weirdness as to when diag/ok outputs relative to the message. I assume this is just a result of how long ok takes to run.: Code changes: use Test::More tests => 4; use strict; use warnings; diag( "Test::More instantiated"); my $thr = threads->new(sub { while (1) { sleep 1; } }); sleep 3; diag("Sending kill TERM"); $thr->kill('TERM'); diag("Kill sent"); ok(1, "Kill sent via ok"); sleep 3; ok(!$thr->is_running(), 'Check that thread is no longer running'); OUTPUT: t/forks07.t .. 1..4 # # These tests check inter-thread signaling. # I'm patching test builder # Test::More instantiated # Sending kill TERM # Kill sent Signal SIGTERM received, but no signal handler set for thread 1 ok 1 - Kill sent via ok ok 2 - Check that thread is no longer running ok 3 - Check that thread is no longer running ok 4 - Check that custom signal handler was used ok All tests successful. Files=1, Tests=4, 12 wallclock secs ( 0.02 usr 0.01 sys + 0.17 cusr 0.04 csys = 0.24 CPU) Result: PASS
From: bitcard [...] faxm0dem.org
Download (untitled) / with headers
text/plain 5.3k
Hi, I'm not sure this is related, but the words "eval" and "lock" rang a bell. The attached script works perfectly well on various perl versions on linux. However, on Solaris 10 (tested using OS shipped perl 5.8.4 see perl -V at the end) I get: # ./queues2 Thread 1 terminated abnormally: lock can only be used on shared values at ./queu es line 10 at /home/sysunix/perl5/lib/perl5/i86pc-solaris-64int/forks.pm line 807 Thread 2 terminated abnormally: lock can only be used on shared values at ./queu es line 17 at /home/sysunix/perl5/lib/perl5/i86pc-solaris-64int/forks.pm line 807 However, if I replace the string eval by a block eval, or if I just skip the eval block and use at compile time, things run fine. # perl -V Summary of my perl5 (revision 5 version 8 subversion 4) configuration: Platform: osname=solaris, osvers=2.10, archname=i86pc-solaris-64int uname='sunos localhost 5.10 i86pc i386 i86pc' config_args='' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=unde f useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TS_ERRNO', optimize='-xO3 -xspace -xildoff', cppflags='' ccversion='Sun WorkShop', gccversion='', gccosandvers='' 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', lsee ksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags ='' libpth=/lib /usr/lib /usr/ccs/lib libs=-lsocket -lnsl -ldl -lm -lc perllibs=-lsocket -lnsl -ldl -lm -lc libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-R /usr/perl5/5.8. 4/lib/i86pc-solaris-64int/CORE' cccdlflags='-KPIC', lddlflags='-G' Characteristics of this binary (from libperl): Compile-time options: USE_64_BIT_INT USE_LARGE_FILES Locally applied patches: 22667 The optree builder was looping when constructing the ops ... 22715 Upgrade to FileCache 1.04 22733 Missing copyright in the README. 22746 fix a coredump caused by rv2gv not fully converting a PV ... 22755 Fix 29149 - another UTF8 cache bug hit by substr. 22774 [perl #28938] split could leave an array without ... 22775 [perl #29127] scalar delete of empty slice returned garbage 22776 [perl #28986] perl -e "open m" crashes Perl 22777 add test for change #22776 ("open m" crashes Perl) 22778 add test for change #22746 ([perl #29102] Crash on assign ... 22781 [perl #29340] Bizarre copy of ARRAY make sure a pad op's ... 22796 [perl #29346] Double warning for int(undef) and abs(undef) ... 22818 BOM-marked and (BOMless) UTF-16 scripts not working 22823 [perl #29581] glob() misses a lot of matches 22827 Smoke [5.9.2] 22818 FAIL(F) MSWin32 WinXP/.Net SP1 (x86/1 cpu) 22830 [perl #29637] Thread creation time is hypersensitive 22831 improve hashing algorithm for ptr tables in perl_clone: ... 22839 [perl #29790] Optimization busted: '@a = "b", sort @a' ... 22850 [PATCH] 'perl -v' fails if local_patches contains code snippets 22852 TEST needs to ignore SCM files 22886 Pod::Find should ignore SCM files and dirs 22888 Remove redundant %SIG assignments from FileCache 23006 [perl #30509] use encoding and "eq" cause memory leak 23074 Segfault using HTML::Entities 23106 Numeric comparison operators mustn't compare addresses of ... 23320 [perl #30066] Memory leak in nested shared data structures ... 23321 [perl #31459] Bug in read() 27722 perlio.c breaks on Solaris/gcc when > 256 FDs are available SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962 6663288 Upgrade to CGI.pm 3.33 REGEXP0 - fix for UTF-8 recoding in regexps - CVE-2007-5116 6758953 Perl Sys::Syslog can log messages with wrong severity Built under solaris Compiled at May 20 2009 22:16:00 %ENV: PERL5LIB="/home/sysunix/perl5/lib/perl5/i86pc-solaris-64int:/home/sysunix/pe rl5/lib/perl5:/home/sysunix/perl5/lib/perl5/i86pc-solaris-64int:/home/sysunix/pe rl5/lib/perl5:/home/sysunix/perl5/lib/perl5/i86pc-solaris-64int:/home/sysunix/pe rl5/lib/perl5" PERL_MM_OPT="INSTALL_BASE=/home/sysunix/perl5" @INC: /home/sysunix/perl5/lib/perl5/i86pc-solaris-64int /home/sysunix/perl5/lib/perl5/i86pc-solaris-64int /home/sysunix/perl5/lib/perl5 /home/sysunix/perl5/lib/perl5/i86pc-solaris-64int /home/sysunix/perl5/lib/perl5/i86pc-solaris-64int /home/sysunix/perl5/lib/perl5 /home/sysunix/perl5/lib/perl5/i86pc-solaris-64int /home/sysunix/perl5/lib/perl5/i86pc-solaris-64int /home/sysunix/perl5/lib/perl5 /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .
Subject: queues2
Download queues2
application/octet-stream 465b

Message body not shown because it is not plain text.



This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.