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,