tags:

views:

86

answers:

2

I'm using cpanm to install Perl modules, but I can't install Thread::Pool for some reason:

$ sudo cpanm Thread::Pool

fails and the log file says:

cpanm (App::cpanminus) 1.0012 on perl 5.010001 built for i486-linux-gnu-thread-multi
Work directory is /home/dave/.cpanm/work/1284831891.13606
You have make /usr/bin/make
You have LWP 5.834
You have /bin/tar: tar (GNU tar) 1.22
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html&gt;.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
You have /usr/bin/unzip
Searching Thread::Pool on cpanmetadb ...
Fetching http://search.cpan.org/CPAN/authors/id/E/EL/ELIZABETH/Thread-Pool-0.32.tar.gz
-> OK
Unpacking Thread-Pool-0.32.tar.gz
Entering Thread-Pool-0.32
Configuring Thread-Pool-0.32
Running Makefile.PL
Warning: prerequisite Thread::Conveyor 0.15 not found.
Warning: prerequisite Thread::Conveyor::Monitored 0.11 not found.
Checking if your kit is complete...
Looks good
Writing Makefile for Thread::Pool
-> OK
Finding PREREQ from Makefile ...
Checking if you have Thread::Conveyor::Monitored 0.11 ... No
Checking if you have Thread::Conveyor 0.15 ... No
==> Found dependencies: Thread::Conveyor::Monitored, Thread::Conveyor
Searching Thread::Conveyor::Monitored on cpanmetadb ...
Fetching http://search.cpan.org/CPAN/authors/id/E/EL/ELIZABETH/Thread-Conveyor-Monitored-0.12.tar.gz
-> OK
Unpacking Thread-Conveyor-Monitored-0.12.tar.gz
Entering Thread-Conveyor-Monitored-0.12
Configuring Thread-Conveyor-Monitored-0.12
Running Makefile.PL
Warning: prerequisite Thread::Conveyor 0.15 not found.
Checking if your kit is complete...
Looks good
Writing Makefile for Thread::Conveyor::Monitored
-> OK
Finding PREREQ from Makefile ...
Checking if you have Thread::Conveyor 0.15 ... No
Checking if you have load 0 ... Yes (0.19)
==> Found dependencies: Thread::Conveyor
Searching Thread::Conveyor on cpanmetadb ...
Fetching http://search.cpan.org/CPAN/authors/id/E/EL/ELIZABETH/Thread-Conveyor-0.17.tar.gz
-> OK
Unpacking Thread-Conveyor-0.17.tar.gz
Entering Thread-Conveyor-0.17
Configuring Thread-Conveyor-0.17
Running Makefile.PL
Warning: prerequisite Thread::Tie 0.09 not found.
Checking if your kit is complete...
Looks good
Writing Makefile for Thread::Conveyor
-> OK
Finding PREREQ from Makefile ...
Checking if you have Thread::Serialize 0 ... Yes (0.10)
Checking if you have Thread::Tie 0.09 ... No
Checking if you have load 0 ... Yes (0.19)
==> Found dependencies: Thread::Tie
Searching Thread::Tie on cpanmetadb ...
Fetching http://search.cpan.org/CPAN/authors/id/E/EL/ELIZABETH/Thread-Tie-0.12.tar.gz
-> OK
Unpacking Thread-Tie-0.12.tar.gz
Entering Thread-Tie-0.12
Configuring Thread-Tie-0.12
Running Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Thread::Tie
-> OK
Finding PREREQ from Makefile ...
Checking if you have Thread::Serialize 0.07 ... Yes (0.10)
Checking if you have load 0.11 ... Yes (0.19)
Building and testing Thread-Tie-0.12 for Thread::Tie
cp lib/Thread/Tie/Array.pm blib/lib/Thread/Tie/Array.pm
cp lib/Thread/Tie/Handle.pm blib/lib/Thread/Tie/Handle.pm
cp lib/Thread/Tie/Thread.pm blib/lib/Thread/Tie/Thread.pm
cp lib/Thread/Tie.pm blib/lib/Thread/Tie.pm
cp lib/Thread/Tie/Hash.pm blib/lib/Thread/Tie/Hash.pm
cp lib/Thread/Tie/Scalar.pm blib/lib/Thread/Tie/Scalar.pm
Manifying blib/man3/Thread::Tie::Array.3pm
Manifying blib/man3/Thread::Tie::Handle.3pm
Manifying blib/man3/Thread::Tie::Thread.3pm
Manifying blib/man3/Thread::Tie::Hash.3pm
Manifying blib/man3/Thread::Tie.3pm
Manifying blib/man3/Thread::Tie::Scalar.3pm
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/Tie01.t .. 
Failed 59/71 subtests 
t/Tie02.t .. 
Failed 23/26 subtests 

Test Summary Report
-------------------
t/Tie01.t (Wstat: 11 Tests: 12 Failed: 0)
  Non-zero wait status: 11
  Parse errors: Bad plan.  You planned 71 tests but ran 12.
t/Tie02.t (Wstat: 11 Tests: 3 Failed: 0)
  Non-zero wait status: 11
  Parse errors: Bad plan.  You planned 26 tests but ran 3.
Files=2, Tests=15,  1 wallclock secs ( 0.02 usr  0.00 sys +  0.89 cusr  0.17 csys =  1.08 CPU)
Result: FAIL
Failed 2/2 test programs. 0/15 subtests failed.
make: *** [test_dynamic] Error 255
-> FAIL Installing Thread::Tie failed. See /home/dave/.cpanm/build.log for details.
-> FAIL Bailing out the installation for Thread-Conveyor-0.17. Retry with --prompt or --force.
-> FAIL Bailing out the installation for Thread-Conveyor-Monitored-0.12. Retry with --prompt or --force.
Already tried Thread::Conveyor. Skipping.
-> FAIL Bailing out the installation for Thread-Pool-0.32. Retry with --prompt or --force.
+3  A: 

Well, the problem is that Thread::Tie (one of the prerequisites) is failing its tests. According to CPAN Testers, Thread::Tie has never passed its tests on Perl 5.10.1, and has 6 failure reports. The couple I checked look just like yours.

You can use cpanm -n to skip running the tests and install anyway, but there's no guarantee that the resulting module will work properly. It's possible that the problem is in the test scripts rather than the module itself, but that's not the most likely explanation.

You can try reporting a bug in Thread::Tie, or try debugging it yourself.

cjm
So.. what do you recommend I do? Is there another simple thread pool manager perhaps?
David B
@David B, I've never really worked with Perl threads, so I can't recommend an alternative. I'd probably report the bug to Thread::Tie's author, and also see if I could figure out why it wasn't working.
cjm
Do you really want to use threads? We don't know what you are trying to do, so we can't recommend other solutions yet.
brian d foy
+1  A: 

Thanks for reporting.

I've just uploaded new versions of all modules involved. Fortunately, most of the problems were actually in the test-suites and not in the code itself.

Please let me know if this does solve it for you or not.

Elizabeth Mattijsen

Elizabeth Mattijsen
+1 Thank you Elizabeth. Happy to see you've joined us here :). I have already used another workout, but I'm quite sure I'll be using this soon.
David B