Skip Menu |

This queue is for tickets about the Net-FTPSSL CPAN distribution.

Report information
The Basics
Id: 50771
Status: resolved
Priority: 0/
Queue: Net-FTPSSL

People
Owner: Nobody in particular
Requestors: jchegedus [...] gmail.com
Cc:
AdminCc:

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



Subject: Problem running Net-FTPSSL Version: 0.12 in SLES10 SP2
When running a very simple script featuring Net-FTPSSL Version: 0.12 in SLES10 SP2 , right after the authentication the program stall and only quit after a break request (CTRL+C). I dont have the faintest clue why... I could guess also that it is a problem with the Perl installation in the SuSE distribution, it is not the first time I have a major problem with it. Maybe You guy could have any solution for the module in it? Whilst running the same example in a Slackware 12.2 everything goes smoothly. The SuSE Enterprise Server 10.2 x86_64 details are: perl -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=linux, osvers=2.6.16, archname=x86_64-linux-thread-multi uname='linux smetana 2.6.16 #1 smp thu may 17 14:00:09 utc 2007 x86_64 x86_64 x86_64 gnulinux ' config_args='-ds -e -Dprefix=/usr -Dvendorprefix=/usr -Dinstallusrbinperl -Dusethreads -Di_db -Di_dbm -Di_ndbm -Di_gdbm -Duseshrplib=true -Doptimize=-O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -pipe' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef 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='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -pipe', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement' ccversion='', gccversion='4.1.2 20070115 (prerelease) (SUSE Linux)', 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='cc', ldflags =' -L/usr/local/lib64' libpth=/lib64 /usr/lib64 /usr/local/lib64 libs=-lm -ldl -lcrypt -lpthread perllibs=-lm -ldl -lcrypt -lpthread libc=/lib64/libc-2.4.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.4' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib64' Characteristics of this binary (from libperl): Compile-time options: DEBUGGING MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under linux Compiled at Jul 11 2008 14:53:50 @INC: /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl . ------------- the code: ------------- #!/usr/bin/perl use Net::FTPSSL; my $ftps = Net::FTPSSL->new('10.x.x.xx', Port => 21, Encryption => EXP_CRYPT, Debug => 1) or die "Can't open 10.x.x.xx"; $ftps->login('ftpmonitor', 'zxcvmnb') or die "Can't login: ", $ftps->last_message(); $ftps->noop() or die "Cannot noop: " . $ftps->last_message(); $ftps->quit(); ------------- (pretty much the example of the module) ------------ uname -a Linux gloapp151 2.6.16.60-0.21-smp #1 SMP Tue May 6 12:41:02 UTC 2008 x86_64 x86_64 x86_64 GNU/Linux ------------ strace pilot.pl .... cut non relevant part .... connect(3, {sa_family=AF_INET, sin_port=htons(21), sin_addr=inet_addr("10.x.x.xx")}, 16) = 0 fcntl(3, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK) fcntl(3, F_SETFL, O_RDWR) = 0 read(3, "220 Service Ready for new User\r\n", 4096) = 32 write(2, "SKT <<< 220 Service Ready for ne"..., 39SKT <<< 220 Service Ready for new User ) = 39 write(2, "SKT >>> AUTH TLS\n", 17SKT >>> AUTH TLS ) = 17 write(3, "AUTH TLS\r\n", 10) = 10 read(3, "234 Enabling SSL\r\n", 4096) = 18 write(2, "SKT <<< 234 Enabling SSL\n", 25SKT <<< 234 Enabling SSL ) = 25 stat("certs/my-ca.pem", 0x63b140) = -1 ENOENT (No such file or directory) open("/dev/urandom", O_RDONLY|O_NONBLOCK|O_NOCTTY) = 4 fstat(4, {st_mode=S_IFCHR|0644, st_rdev=makedev(1, 9), ...}) = 0 select(5, [4], NULL, NULL, {0, 10000}) = 1 (in [4], left {0, 10000}) read(4, "\335\36\265\4\307\245\345\321F\375\332\345f\212\26{\306"..., 32) = 32 close(4) = 0 getuid() = 0 write(3, "\26\3\1\0K\1\0\0G\3\1J\341\242\374\372,\354\374t\247\31"..., 80) = 80 read(3, "\26\3\1\0J", 5) = 5 read(3, "\2\0\0F\3\1J\341\242\374\241\300\267\253\200u\34>\256\f"..., 74) = 74 read(3, "\26\3\1\nn", 5) = 5 read(3, "\v\0\nj\0\ng\0\00560\202\00520\202\4\32\240\3\2\1\2\2$"..., 2670) = 1376 read(3, "\252\177\206LY\7\353k\302\277ms\37{\16\247\2\2\1+0\r\6"..., 1294) = 1294 read(3, "\26\3\1\0\4", 5) = 5 read(3, "\16\0\0\0", 4) = 4 brk(0xb84000) = 0xb84000 brk(0xb83000) = 0xb83000 write(3, "\26\3\1\1\6\20\0\1\2\1\0\254\344f\356\225\306\257-5\272"..., 326) = 326 read(3, "\24\3\1\0\1", 5) = 5 read(3, "\1", 1) = 1 read(3, "\26\3\1\0000", 5) = 5 read(3, "\354)\25\177\251%0j\314\31@+\234cK\321\37,\260;\314\37"..., 48) = 48 write(2, ">>> USER ftpmonitor\n", 20>>> USER ftpmonitor ) = 20 stat("/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/Net/SSLeay/ssl_write_all.al", {st_mode=S_IFREG|0444, st_size=1247, ...}) = 0 stat("/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/Net/SSLeay/ssl_write_all.al", {st_mode=S_IFREG|0444, st_size=1247, ...}) = 0 open("/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/Net/SSLeay/ssl_write_all.al", O_RDONLY) = 4 ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff75537a90) = -1 ENOTTY (Inappropriate ioctl for device) lseek(4, 0, SEEK_CUR) = 0 read(4, "# NOTE: Derived from blib/lib/Ne"..., 4096) = 1247 read(4, "", 4096) = 0 close(4) = 0 write(3, "\27\3\1\0000\v\200w\343`p\266\33|SV`.a\231\246\361A\356"..., 53) = 53 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) stat("/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/Net/SSLeay/ssl_read_all.al", {st_mode=S_IFREG|0444, st_size=703, ...}) = 0 stat("/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/Net/SSLeay/ssl_read_all.al", {st_mode=S_IFREG|0444, st_size=703, ...}) = 0 open("/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/Net/SSLeay/ssl_read_all.al", O_RDONLY) = 4 ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff75536a50) = -1 ENOTTY (Inappropriate ioctl for device) lseek(4, 0, SEEK_CUR) = 0 read(4, "# NOTE: Derived from blib/lib/Ne"..., 4096) = 703 read(4, "", 4096) = 0 close(4) = 0 read(3, "\27\3\1\0 ", 5) = 5 read(3, "\222i\330\225\303\320\302\f\343\332\22\7uMU\220|\327X\314"..., 32) = 32 read(3, "\27\3\1\0@", 5) = 5 read(3, "\t\333I\243\217\201\322v0\355\262\302R\202\7<\263s\324"..., 64) = 64 read(3, <unfinished ...> (the <unfinished....> appear when aborting via CTRL+C) In comparison with the same program running on the Slackware 12.2 some of the activity right after : (in SUSE) stat("certs/my-ca.pem", 0x63b140) = -1 ENOENT (No such file or directory) open("/dev/urandom", O_RDONLY|O_NONBLOCK|O_NOCTTY) = 4 fstat(4, {st_mode=S_IFCHR|0644, st_rdev=makedev(1, 9), ...}) = 0 select(5, [4], NULL, NULL, {0, 10000}) = 1 (in [4], left {0, 10000}) read(4, "\335\36\265\4\307\245\345\321F\375\332\345f\212\26{\306"..., 32) = 32 close(4) = 0 getuid() = 0 write(3, "\26\3\1\0K\1\0\0G\3\1J\341\242\374\372,\354\374t\247\31"..., 80) = 80 Is pretty different, as follows: (in Slackware) stat64("certs/my-ca.pem", 0x814c0c8) = -1 ENOENT (No such file or directory) fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR) getpeername(3, {sa_family=AF_INET, sin_port=htons(21), sin_addr=inet_addr("10.x.x.xx")}, [16]) = 0 fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR) fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 time(NULL) = 1256301537 time(NULL) = 1256301537 time(NULL) = 1256301537 time(NULL) = 1256301537 open("/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK) = 4 fstat64(4, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 9), ...}) = 0 poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 10) = 1 read(4, "\\B\367LxP\216\337\10\240o>\271eZf17D\6\351\352\237\201"..., 32) = 32 close(4) = 0 getuid32() = 0 time(NULL) = 1256301537 write(3, "\26\3\1\0Q\1\0\0M\3\1J\341\243\341 \37\331\356\32\313\335"..., 86) = 86 --------- With regards,
After a careful look at all versions of all modules involved in the process of FTPSSL, I could find various relevant updates. After updating the IO::Socket:SSL to 1.31, everything started to work smoothly. Then obviously the Perl installation in the SuSE not as good as it should be, lacking latest updates necessary to work properly in several cases. With regards,