Skip Menu |

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

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

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

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



Subject: (cygwin64 on win7) Test 16v6only.t fails - ln 43
All other tests pass if I remark ln 43 out. Installing 0.36 Socket: 2.018 t/16v6only.t ........................ 2/? # Failed test 'Socket creation fails with connection refused' # at t/16v6only.t line 43. # '' # doesn't match '(?^:Connection\ refused)' # Looks like you failed 1 test of 6. (base OS) C:\>ver Microsoft Windows [Version 6.1.7601] (Cygwin) $ uname -a CYGWIN_NT-6.1 vendetta 1.7.30(0.272/5/3) 2014-05-23 10:36 x86_64 Cygwin $ perl -V Summary of my perl5 (revision 5 version 14 subversion 4) configuration: Platform: osname=cygwin, osvers=1.7.18(0.26353), archname=cygwin-thread-multi uname='cygwin_nt-6.1 yaakov04 1.7.18(0.26353) 2013-03-07 19:25 x86_64 cygwin ' config_args='-d -e -Dprefix=/usr -Dmksymlinks -Dusethreads -Darchname=x86_64-cygwin-threads -Dlibperl=cygperl5_14.dll -Dcc=gcc -Dld=g++' 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='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -pipe -fstack-protector', optimize='-O3', cppflags='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -pipe -fstack-protector' ccversion='', gccversion='4.8.0 20130307 (experimental)', 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='g++', ldflags =' -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--enable-auto-image-base -fstack-protector' libpth=/usr/lib /lib libs=-lgdbm -ldb -ldl -lcrypt -lgdbm_compat perllibs=-ldl -lcrypt libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=cygperl5_14.dll gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags=' --shared -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--enable-auto-image-base -fstack-protector' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_PRESERVE_IVUV PERL_USE_SAFE_PUTENV USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Locally applied patches: Bug#55162 File::Spec::case_tolerant performance CYG07 $vendorarch/auto/.rebase CYG15 static Win32CORE CYG17 cyg-1.7 paths-utf8 0c612ce82 Fix building static extensions on cygwin, -UUSEIMPORTLIB 1bac5ecc1 Fix 64-bit threading sv.c: S_anonymise_cv_maybe Cygwin::sync_winenv added Built under cygwin Compiled at Mar 11 2013 18:25:23 @INC: /usr/lib/perl5/site_perl/5.14/x86_64-cygwin-threads /usr/lib/perl5/site_perl/5.14 /usr/lib/perl5/vendor_perl/5.14/x86_64-cygwin-threads /usr/lib/perl5/vendor_perl/5.14 /usr/lib/perl5/5.14/x86_64-cygwin-threads /usr/lib/perl5/5.14
Well, that's rather vexing. In particular because it means the test on the previous line (42) still passes, so the constructor did still fail. It just failed with an empty error message. Can you please retest with the attached patch applied? It won't change the behaviour but it should make a more verbose output that might help find where the failure comes from. -- Paul Evans
Subject: rt102257-test1.patch
=== modified file 'lib/IO/Socket/IP.pm' --- lib/IO/Socket/IP.pm 2015-01-11 16:30:55 +0000 +++ lib/IO/Socket/IP.pm 2015-03-12 19:36:44 +0000 @@ -465,6 +465,7 @@ } if( $err ) { + warn "local getaddrinfo() failed [$err]"; $@ = "$err"; $! = EINVAL; return; @@ -492,6 +493,7 @@ } if( $err ) { + warn "peer getaddrinfo() failed [$err]"; $@ = "$err"; $! = EINVAL; return; @@ -557,6 +559,7 @@ else { ( my $err, @infos ) = getaddrinfo( "", "0", \%hints ); if( $err ) { + warn "AI_ADDRCONFIG getaddrinfo() probe failed [$err]"; $@ = "$err"; $! = EINVAL; return; @@ -630,6 +633,7 @@ if( $! == EINPROGRESS or HAVE_MSWIN32 && $! == Errno::EWOULDBLOCK() ) { ${*$self}{io_socket_ip_connect_in_progress} = 1; + warn "setup would block"; return 0; } @@ -638,7 +642,7 @@ # IO::Socket::SSL. # In this case don't continue IP based multi-homing because the problem # cannot be solved at the IP layer. - return 0 if ! $!; + warn("higher-level application connect failure"), return 0 if ! $!; ${*$self}{io_socket_ip_errors}[0] = $!; next;
I had IPv6 disabled (from windows) when the error occurred. I have since re-enabled it and it no longer has an error. Not sure if this is still a case you care about then.