Skip Menu |

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

Report information
The Basics
Id: 47240
Status: resolved
Priority: 0/
Queue: IO-Socket-SSL

People
Owner: Nobody in particular
Requestors: toddr [...] cpanel.net
Cc:
AdminCc:

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



Subject: IO::Socket::SSL failing nonblock tests in 10.5 OSX
$>prove -lvm t/nonblock.t t/nonblock.t .. 1..27 ok # [server] Server Initialization ok # [client] client tcp connect ok # [client] write plain text ok # [server] tcp accept ok # [server] received plain text ok # [server] upgrade to_client to IO::Socket::SSL ok # [client] upgrade client to IO::Socket::SSL # SSL wants a read first # SSL wants a read first # SSL wants a read first ok # [server] ssl accept handshake done ok # [client] connected ok # [client] nonblocking connect with 2 attempts # sndbuf=8192 # 1234567890 ok # [server] received client message ok # [client] syswrite not ok # [client] 30000 bytes send ok # [client] client tcp connect not ok # [client] write plain text # read of 10 bytes # read of 10 bytes # read of 10 bytes # read of 10 bytes # read of 10 bytes # read of 10 bytes #... ( ALOTTA READS) # read of 10 bytes # read of 10 bytes # read of 10 bytes # read 30000 ok # [server] tcp accept ok # [client] upgrade client to IO::Socket::SSL # SSL wants a read first not ok # [server] received plain text ok # [server] upgrade to_client to IO::Socket::SSL # SSL accept attempt failed with unknown errorerror:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number # failed to accept: SSL accept attempt failed with unknown errorerror:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number not ok # [server] ssl accept handshake done not ok # [server] nonblocking accept_SSL with 0 attempts not # ok # [server] received client message # SSL connect attempt failed because of handshake problemserror:00000000:lib(0):func(0):reason(0) # failed to connect: SSL connect attempt failed because of handshake problemserror:00000000:lib(0):func(0):reason(0) not ok # [client] connected # sndbuf=8192 ok # [client] syswrite not ok # [client] 30000 bytes send # read of 29990 bytes # read 30000 Failed 9/27 subtests Test Summary Report ------------------- t/nonblock.t (Wstat: 0 Tests: 25 Failed: 7) Failed tests: 13, 15, 18, 20-21, 23, 25 Parse errors: Bad plan. You planned 27 tests but ran 25. Files=1, Tests=25, 15 wallclock secs ( 0.28 usr 0.04 sys + 0.33 cusr 0.16 csys = 0.81 CPU) Result: FAIL 090622.100113 root@CMU-339622.WV.CC.CMU.EDU (/var/root/.cpan/build/IO-Socket-SSL-1.24-z9_04L) $>
$>perl -V Summary of my perl5 (revision 5 version 10 subversion 0) configuration: Platform: osname=darwin, osvers=9.6.0, archname=darwin-2level uname='darwin todd-rinaldos-imac.local 9.6.0 darwin kernel version 9.6.0: mon nov 24 17:37:00 pst 2008; root:xnu-1228.9.59~1release_i386 i386 ' config_args='' hint=recommended, useposix=true, d_sigaction=define useithreads=undef, usemultiplicity=undef useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=undef, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include', optimize='-O3', cppflags='-no-cpp-precomp -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include' ccversion='', gccversion='4.0.1 (Apple Inc. build 5490)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -L/usr/local/lib -L/opt/local/lib' libpth=/usr/local/lib /opt/local/lib /usr/lib libs=-ldbm -ldl -lm -lutil -lc perllibs=-ldl -lm -lutil -lc libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib' Characteristics of this binary (from libperl): Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_LARGE_FILES USE_PERLIO Built under darwin Compiled at Jan 25 2009 12:03:50 %ENV: PERL5LIB="" PERL5OPT="" PERL5_CPANPLUS_IS_RUNNING="37135" PERL5_CPAN_IS_RUNNING="37135" PERLDB_OPTS="RemotePort=:9000" @INC: /usr/local/perl510/lib/5.10.0/darwin-2level /usr/local/perl510/lib/5.10.0 /usr/local/perl510/site/lib/darwin-2level /usr/local/perl510/site/lib .
Hi, thanks for your bug report. I don't have OSX 10.5 so I cannot reproduce the error, but I maybe I can find the problem with your help. - is the problem reproducable? - what version of Net::SSLeay do you use? perl -MNet::SSLeay -e 'die $Net::SSLeay::VERSION' did you install this version yourself or was it provided with the system? If you did install it yourself, was it a default install? - what version of of openssl do you use? perl -MNet::SSLeay -e 'die Net::SSLeay::OPENSSL_VERSION_NUMBER()' did you install this version yourself or was it provided with the system? If you did install it yourself, was it a default install? - what version of IO::Socket::INET and maybe IO::Socket::INET6 do you have installed? perl -MIO::Socket::INET -e 'die $IO::Socket::INET::VERSION' perl -MIO::Socket::INET6 -e 'die $IO::Socket::INET6::VERSION' - in case you have other perls installed - do you get the error with these perls too? Regards, Steffen
I have compiled and installed perl to /usr/local/perl510. All were installed via the CPAN utility. $>perl -MNet::SSLeay -e 'die $Net::SSLeay::VERSION' 1.35 at -e line 1. $>perl -MNet::SSLeay -e 'die Net::SSLeay::OPENSSL_VERSION_NUMBER()' 9466063 at -e line 1. $>perl -MIO::Socket::INET -e 'die $IO::Socket::INET::VERSION' 1.31 at -e line 1. $>perl -MIO::Socket::INET6 -e 'die $IO::Socket::INET6::VERSION' 2.56 at -e line 1.
As a policy I do not modify the version of perl distributed by Apple. I have just done a check using the 5.8.8 version distributed by apple. I get additional errors with it: sh-3.2# perl -MNet::SSLeay -e 'die $Net::SSLeay::VERSION' 1.30 at -e line 1. sh-3.2# perl -MNet::SSLeay -e 'die Net::SSLeay::OPENSSL_VERSION_NUMBER()' 9466063 at -e line 1. sh-3.2# perl -MIO::Socket::INET -e 'die $IO::Socket::INET::VERSION' 1.29 at -e line 1. sh-3.2# perl -MIO::Socket::INET6 -e 'die $IO::Socket::INET6::VERSION' 2.51 at -e line 1. sh-3.2# prove -lv t/nonblock.t t/nonblock....1..27 ok # [server] Server Initialization ok # [client] client tcp connect ok # [client] write plain text ok # [server] tcp accept ok # [server] received plain text ok # [client] upgrade client to IO::Socket::SSL ok # [server] upgrade to_client to IO::Socket::SSL # SSL wants a read first # SSL wants a read first # SSL wants a read first ok # [server] ssl accept handshake done ok # [client] connected ok # [client] nonblocking connect with 2 attempts # sndbuf=8192 # 1234567890 ok # [server] received client message ok # [client] syswrite not ok # [client] 30000 bytes send ok # [client] client tcp connect not ok # [client] write plain text # read of 10 bytes # read of 10 bytes # read of 10 bytes # read of 10 bytes ...... # read of 10 bytes # read of 10 bytes # read 30000 ok # [server] tcp accept ok # [client] upgrade client to IO::Socket::SSL # SSL wants a read first not ok # [server] received plain text ok # [server] upgrade to_client to IO::Socket::SSL sysread() on closed filehandle GEN2 at t/nonblock.t line 333. Use of uninitialized value in numeric eq (==) at t/nonblock.t line 333. setsockopt() on closed socket GEN2 at (eval 14) line 2. getsockopt() on closed socket GEN2 at (eval 14) line 3. Use of uninitialized value in unpack at (eval 14) line 3. Use of uninitialized value in concatenation (.) or string at (eval 14) line 3. syswrite() on closed filehandle GEN2 at t/nonblock.t line 190. # SSL accept attempt failed with unknown errorerror:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number # failed to accept: SSL accept attempt failed with unknown errorerror:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number not ok # [server] ssl accept handshake done not # SSL connect attempt failed because of handshake problemserror:00000000:lib(0):func(0):reason(0) ok # [server] nonblocking accept_SSL with 0 attempts # failed to connect: SSL connect attempt failed because of handshake problemserror:00000000:lib(0):func(0):reason(0) not ok # [client] connected not # C? ok # [server] received client message # sndbuf= # $!=Bad file descriptor $SSL_ERROR=SSL connect attempt failed because of handshake problemserror:00000000:lib(0):func(0):reason(0) send=0 not ok # [client] syswrite not not ok # [client] 30000 bytes send sysread() on closed filehandle GEN2 at t/nonblock.t line 343. # $!=Bad file descriptor $SSL_ERROR=SSL accept attempt failed with unknown errorerror:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number not # read 10 FAILED tests 13, 15, 18, 20, 22, 24-27 Failed 9/27 tests, 66.67% okay Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/nonblock.t 27 9 33.33% 13 15 18 20 22 24-27 Failed 1/1 test scripts, 0.00% okay. 9/27 subtests failed, 66.67% okay.
fixed in version 1.25 looks like OS X 10.5 has a really large socket buffer so that I needed to write more bytes to make the write block in t/nonblock.t. Thanks for helping me resolving this Bug.