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

Report information
The Basics
Id:
98285
Status:
open
Priority:
Low/Low
Queue:

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

BugTracker
Severity:
(no value)
Broken in:
(no value)
Fixed in:
(no value)



Subject: AIX failure in t/31nonblocking.t
MIME-Version: 1.0
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
Message-ID: <rt-4.0.18-8409-1408846238-1166.0-0-0@rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 1079
./perl -Ilib cpan/IO-Socket-IP/t/31nonblocking.t ok 1 - defined $socket for cpanidx.org:80 ok 2 - $socket has fileno ok 3 - $socket not yet connected Argument "\0\0\0\0\0\0\0.?\0\n^B1?^B8??????\\??^I?4^H^F\0^A^H\0^F^D..." isn't numeric in scalar assignment at lib/IO/Socket/IP.pm line 651. ok 4 - ->connect eventually succeeds ok 5 - $socket now connected ok 6 # skip Connecting to cpanidx.org:6666 doesn't give ECONNREFUSED ok 7 # skip Connecting to cpanidx.org:6666 doesn't give ECONNREFUSED ok 8 # skip Connecting to cpanidx.org:6666 doesn't give ECONNREFUSED ok 9 # skip Connecting to cpanidx.org:6666 doesn't give ECONNREFUSED 1..9 AIX 6.1, FWIW. Looking at line 651: 649 if( my $errno = $self->getsockopt( SOL_SOCKET, SO_ERROR ) ) { 650 delete ${*$self}{io_socket_ip_connect_in_progress}; 651 ${*$self}{io_socket_ip_errors}[0] = $! = $errno; 652 return $self->setup; 653 } I'm not familiar with the code... but at least the plain getsockopt() returns a packed binary string (like it looks like) on success, undef on failure, and the $! gets set.
MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-8409-1408846238-1166.0-0-0@rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <rt-4.0.18-8409-1408846238-1166.0-0-0@rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-28465-1426190584-283.98285-0-0@rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 482
On Sat Aug 23 22:10:38 2014, JHI wrote:
Show quoted text
> I'm not familiar with the code... but at least the plain getsockopt() > returns a packed binary string (like it looks like) on success, undef > on failure, and the $! gets set.
This is a weeeeird weirdness of IO::Socket's getsockopt wrapper. If you getsockopt and it returns a binary string whose length matches that of pack("i"), it will presume it a packed integer and unpack it for you. You get no choice in the matter. -- Paul Evans


This service runs on Request Tracker, is sponsored by The Perl Foundation, and maintained by Best Practical Solutions.

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