Skip Menu |

This queue is for tickets about the IO-Socket-IP CPAN distribution.

Report information
The Basics
Id: 92484
Status: resolved
Priority: 0/
Queue: IO-Socket-IP

People
Owner: Nobody in particular
Requestors: SREZIC [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: 0.32



Subject: IO::Socket::Socks breaks if IO::Socket::IP replaces IO::Socket::INET
Installing Acme-Override-INET causes the IO-Socket-Socks test suite to break on FreeBSD systems. See here for a couple of FAIL reports: http://matrix.cpantesters.org/?dist=IO-Socket-Socks%200.63;os=freebsd;perl=5.18.2;reports=1#sl=5,0 Regards, Slaven
On Sun Jan 26 14:29:54 2014, SREZIC wrote: Show quoted text
> Installing Acme-Override-INET causes the IO-Socket-Socks test suite to > break on FreeBSD systems. See here for a couple of FAIL reports: > http://matrix.cpantesters.org/?dist=IO-Socket- > Socks%200.63;os=freebsd;perl=5.18.2;reports=1#sl=5,0 > > Regards, > Slaven
Seems at least not to be FreeBSD-specific, as I can reproduce the same kinds of failures on Linux -- Paul Evans
On Sun Jan 26 14:29:54 2014, SREZIC wrote: Show quoted text
> Installing Acme-Override-INET causes the IO-Socket-Socks test suite to > break on FreeBSD systems. See here for a couple of FAIL reports: > http://matrix.cpantesters.org/?dist=IO-Socket- > Socks%200.63;os=freebsd;perl=5.18.2;reports=1#sl=5,0 > > Regards, > Slaven
Turns out that both IO::Socket::IP and ::Socks create an internal _configure method to do their own thing with. Obviously this isn't going to work. Possible thoughts: 1) "don't do that" - Acme::Override::INET was intended as a test mechanism to see ::INET would be OK as a drop-in for -USERS- using ::INET. 2) Have one of ::IP or ::Socks (or both) rename their _configure methods to something uniquely identifying them 3) Have IO::Socket::Socks natively subclass ::IP if available (and thus also would have to fix this problem itself). I am greatly in favour of 3 because that was always my intention in the first place. -- Paul Evans
On Mon Jan 27 13:06:53 2014, PEVANS wrote: Show quoted text
> 2) Have one of ::IP or ::Socks (or both) rename their _configure > methods to > something uniquely identifying them
That said, this one is also quite easy to do so I've done it. Subclasses of ::INET on CPAN that create a _configure method should now be OK on next IsIP release. -- Paul Evans
Hmm. Having changed the name of the private constructor method, that doesn't actually help. Instead now it just hangs and has to be SIGINT'ed: $ make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/01_load.t .......... # Acme::Override::INET replaced IO::Socket::INET with IO::Socket::IP 0.28 t/01_load.t .......... ok t/02_new.t ........... # Acme::Override::INET replaced IO::Socket::INET with IO::Socket::IP 0.28 t/02_new.t ........... ok t/03_connect.t ....... # Acme::Override::INET replaced IO::Socket::INET with IO::Socket::IP 0.28 ^Cmake: *** [test_dynamic] Interrupt More investigation required... -- Paul Evans
On Tue Feb 11 18:28:27 2014, PEVANS wrote: Show quoted text
> Hmm. Having changed the name of the private constructor method, that > doesn't actually help. Instead now it just hangs and has to be > SIGINT'ed: > > $ make test > PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" > "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t > t/01_load.t .......... # Acme::Override::INET replaced > IO::Socket::INET with IO::Socket::IP 0.28 > t/01_load.t .......... ok > t/02_new.t ........... # Acme::Override::INET replaced > IO::Socket::INET with IO::Socket::IP 0.28 > t/02_new.t ........... ok > t/03_connect.t ....... # Acme::Override::INET replaced > IO::Socket::INET with IO::Socket::IP 0.28 > ^Cmake: *** [test_dynamic] Interrupt > > More investigation required...
The reason, as I see, is that IO::Socket::IP doesn't support connect() timeout. See #rt92075
As this has now been moved to #RT92075 I'll close this one -- Paul Evans