jrockway/anyevent-zeromq

Hangs on `make test` when installing from CPAN

Closed this issue · 5 comments

I have your copy of ZeroMQ::Raw installed ( manually ) along with libzmq 2.1 using perl 14.1

When I try to install AnyEvent::ZeroMQ from CPAN it hangs here:

cpan[1]> install AnyEvent::ZeroMQ
Reading '/home/user/.cpan/Metadata'
  Database was generated on Fri, 09 Dec 2011 02:41:49 GMT
Running install for module 'AnyEvent::ZeroMQ'
Running make for J/JR/JROCKWAY/AnyEvent-ZeroMQ-0.01.tar.gz
Checksum for /home/user/.cpan/sources/authors/id/J/JR/JROCKWAY/AnyEvent-ZeroMQ-0.01.tar.gz ok
Scanning cache /home/user/.cpan/build for sizes
............................................................................DONE

  CPAN.pm: Building J/JR/JROCKWAY/AnyEvent-ZeroMQ-0.01.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for AnyEvent::ZeroMQ
Writing MYMETA.yml and MYMETA.json
cp lib/AnyEvent/ZeroMQ.pm blib/lib/AnyEvent/ZeroMQ.pm
cp lib/AnyEvent/ZeroMQ/Publish.pm blib/lib/AnyEvent/ZeroMQ/Publish.pm
cp lib/AnyEvent/ZeroMQ/Publish/Trait/Topics.pm blib/lib/AnyEvent/ZeroMQ/Publish/Trait/Topics.pm
cp lib/AnyEvent/ZeroMQ/Handle/Role/Generic.pm blib/lib/AnyEvent/ZeroMQ/Handle/Role/Generic.pm
cp lib/AnyEvent/ZeroMQ/Types.pm blib/lib/AnyEvent/ZeroMQ/Types.pm
cp lib/AnyEvent/ZeroMQ/Reply.pm blib/lib/AnyEvent/ZeroMQ/Reply.pm
cp lib/AnyEvent/ZeroMQ/Handle/Role/Readable.pm blib/lib/AnyEvent/ZeroMQ/Handle/Role/Readable.pm
cp lib/AnyEvent/ZeroMQ/Handle/Role/Writable.pm blib/lib/AnyEvent/ZeroMQ/Handle/Role/Writable.pm
cp lib/AnyEvent/ZeroMQ/Request.pm blib/lib/AnyEvent/ZeroMQ/Request.pm
cp lib/AnyEvent/ZeroMQ/Handle.pm blib/lib/AnyEvent/ZeroMQ/Handle.pm
cp lib/AnyEvent/ZeroMQ/Push.pm blib/lib/AnyEvent/ZeroMQ/Push.pm
cp lib/AnyEvent/ZeroMQ/Subscribe.pm blib/lib/AnyEvent/ZeroMQ/Subscribe.pm
cp lib/AnyEvent/ZeroMQ/Role/WithHandle.pm blib/lib/AnyEvent/ZeroMQ/Role/WithHandle.pm
cp lib/AnyEvent/ZeroMQ/Subscribe/Trait/Topics.pm blib/lib/AnyEvent/ZeroMQ/Subscribe/Trait/Topics.pm
cp lib/AnyEvent/ZeroMQ/Pull.pm blib/lib/AnyEvent/ZeroMQ/Pull.pm
Manifying blib/man3/AnyEvent::ZeroMQ::Publish.3
Manifying blib/man3/AnyEvent::ZeroMQ.3
Manifying blib/man3/AnyEvent::ZeroMQ::Handle::Role::Generic.3
Manifying blib/man3/AnyEvent::ZeroMQ::Publish::Trait::Topics.3
Manifying blib/man3/AnyEvent::ZeroMQ::Handle::Role::Readable.3
Manifying blib/man3/AnyEvent::ZeroMQ::Reply.3
Manifying blib/man3/AnyEvent::ZeroMQ::Types.3
Manifying blib/man3/AnyEvent::ZeroMQ::Handle::Role::Writable.3
Manifying blib/man3/AnyEvent::ZeroMQ::Push.3
Manifying blib/man3/AnyEvent::ZeroMQ::Handle.3
Manifying blib/man3/AnyEvent::ZeroMQ::Request.3
Manifying blib/man3/AnyEvent::ZeroMQ::Subscribe::Trait::Topics.3
Manifying blib/man3/AnyEvent::ZeroMQ::Role::WithHandle.3
Manifying blib/man3/AnyEvent::ZeroMQ::Subscribe.3
Manifying blib/man3/AnyEvent::ZeroMQ::Pull.3
  JROCKWAY/AnyEvent-ZeroMQ-0.01.tar.gz
  /usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /home/user/perl5/perlbrew/perls/perl-5.14.1/bin/perl5.14.1 "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/basic-tcp.t .......................

Nothing else appears in the log and I have to kill it.

Can you strace it and see where it's hanging?

When running the basic-tcp.t by hand the first tests pass:

$ strace -o ~/anyevent-zeromq-test.log /home/colin/perl5/perlbrew/perls/perl-5.14.1/bin/perl5.14.1 -t -Ilib t/basic-tcp.t
ok 1 - got got
ok 2 - got message!
1..2

https://gist.github.com/1590739

But then it hangs ( sits at epoll_wait ) on the handle-basic-tcp.t tests:

$ strace -o ~/anyevent-zeromq-test.log /home/colin/perl5/perlbrew/perls/perl-5.14.1/bin/perl5.14.1 -t -Ilib t/handle-basic-tcp.t
ok 1 - got publish handle
ok 2 - got subscribe handle
ok 3 - got cached id
ok 4 - got real id
ok 5 - got real id after using accessor
ok 6 - drained
ok 7 - write called
ok 8 - drained
ok 9 - got first piece of data

^C

https://gist.github.com/1590762

Thanks. As expected, we're asleep in epoll_wait waiting for some watcher that will never fire. I'm not sure why this is; I've seen this in other applications, but I'm not sure exactly what to look for here. We should add some logging before we create a watcher and perhaps assert that there are no events to read from ZMQ. (It might not be ZMQ-related, but it probably is.)

Any chance you might try this? If not, I will take a look in the near future.

I can take a crack at it, though I'm new to ZMQ so I may be unable to identify ZMQ specific issues.

Could you add a Build.PL or Makefile.PL to the project? I guess it's not necessary...

Thanks

This dist is built with Dist::Zilla, so just run "dzil build" to get a
normal ExtUtils::MakeMaker distribution. "dzil test" to run the
tests, also.

On Sat, Jan 14, 2012 at 05:17:22PM -0800, Colin wrote:

I can take a crack at it, though I'm new to ZMQ so I may be unable to identify ZMQ specific issues.

Could you add a Build.PL or Makefile.PL to the project? I guess it's not necessary...

Thanks


Reply to this email directly or view it on GitHub:
#3 (comment)