Segfaulting perl

David King dking at ketralnis.com
Wed Oct 18 11:33:22 PDT 2006


For the archives:

I eventually found <http://www.talkaboutprogramming.com/group/ 
perl.libwww/messages/1556.html> and <http://lists.alioth.debian.org/ 
pipermail/pkg-openssl-devel/2005-October/000186.html>. It looks like  
a bug in p5-Crypt-SSLeay, and it not properly calling some OpenSSL  
routines, which causes perl to segfault. In fetchyahoo 2.10.6, it is  
on line 1435 of 2117, which reads:
	$main_page = $ua->request($request);

$ua is a LWP::UserAgent object, and what's happening is that the  
request is redirecting to an SSL page, so even if you have SSL turned  
off it will end up making an SSL request.

I fixed it (very temporarily) by removing p5-Crypt-SSLeay (pkg_delete  
-f p5-Crypt-SSLeay). The UserAgent object sees that it can't do SSL  
without that package and follows the redirects but without SSL.

So obviously there is the drawback that SSL won't work, and also I  
have other packages that rely on that perl module (notably gnucash)  
that won't work with it not installed. That bug was filed with Debian  
a year ago (Bug#334938, Oct 20, 2005 <http://bugs.debian.org/cgi-bin/ 
bugreport.cgi?bug=334938>).


On 15 Oct 2006, at 13:10, David King wrote:

> Just to make sure that no bad library dependancies were at work, I  
> did a 'make buildworld installworld', and a 'portupgrade -frR  
> fetchyahoo perl openssl', to no avail (and with the same backtrace  
> generated by gdb as below).
>
> Any ideas?
>
> On 10 Oct 2006, at 11:05, David King wrote:
>
>> When trying to run fetchyahoo (from ports), perl dumps core. It  
>> appears to be dumping core in OpenSSL. I've tried recompiling/ 
>> reinstalling all ports related to fetchyahoo, perl, and openssl.  
>> This happens whether or not I enable SSL in fetchyahoo's  
>> configuration.
>>
>> It gets as far as:
>>
>> ~% fetchyahoo
>> Logging in insecurely via plaintext as username on Tue Oct 10  
>> 09:49:20 2006
>> zsh: segmentation fault (core dumped)  fetchyahoo
>>
>> Perl and OpenSSL have been compiled with:
>>
>> ~% egrep -i '^(COPT|CFLAG)' /etc/make.conf
>> CFLAGS+=-O -pipe -mtune=i686 -g
>> COPTFLAGS=-O -pipe -mtune=i686 -g
>>
>> Here's the output of GDB and a backtrace
>>
>> Core was generated by `perl5.8.8'.
>> Program terminated with signal 11, Segmentation fault.
>> Reading symbols from /usr/local/lib/perl5/5.8.8/mach/CORE/ 
>> libperl.so...done.
>> Loaded symbols for /usr/local/lib/perl5/5.8.8/mach/CORE/libperl.so
>> Reading symbols from /lib/libm.so.4...done.
>> Loaded symbols for /lib/libm.so.4
>> Reading symbols from /lib/libcrypt.so.3...done.
>> Loaded symbols for /lib/libcrypt.so.3
>> Reading symbols from /lib/libutil.so.5...done.
>> Loaded symbols for /lib/libutil.so.5
>> Reading symbols from /usr/lib/libpthread.so.2...done.
>> Loaded symbols for /usr/lib/libpthread.so.2
>> Reading symbols from /lib/libc.so.6...done.
>> Loaded symbols for /lib/libc.so.6
>> Reading symbols from /usr/local/lib/perl5/5.8.8/mach/auto/IO/ 
>> IO.so...done.
>> Loaded symbols for /usr/local/lib/perl5/5.8.8/mach/auto/IO/IO.so
>> Reading symbols from /usr/local/lib/perl5/5.8.8/mach/auto/Fcntl/ 
>> Fcntl.so...done.
>> Loaded symbols for /usr/local/lib/perl5/5.8.8/mach/auto/Fcntl/ 
>> Fcntl.so
>> Reading symbols from /usr/local/lib/perl5/site_perl/5.8.8/mach/ 
>> auto/MIME/Base64/Base64.so...done.
>> Loaded symbols for /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/ 
>> MIME/Base64/Base64.so
>> Reading symbols from /usr/local/lib/perl5/5.8.8/mach/auto/Time/ 
>> HiRes/HiRes.so...done.
>> Loaded symbols for /usr/local/lib/perl5/5.8.8/mach/auto/Time/HiRes/ 
>> HiRes.so
>> Reading symbols from /usr/local/lib/perl5/5.8.8/mach/auto/Socket/ 
>> Socket.so...done.
>> Loaded symbols for /usr/local/lib/perl5/5.8.8/mach/auto/Socket/ 
>> Socket.so
>> Reading symbols from /usr/local/lib/perl5/5.8.8/mach/auto/Sys/ 
>> Hostname/Hostname.so...done.
>> Loaded symbols for /usr/local/lib/perl5/5.8.8/mach/auto/Sys/ 
>> Hostname/Hostname.so
>> Reading symbols from /usr/local/lib/perl5/site_perl/5.8.8/mach/ 
>> auto/Compress/Zlib/Zlib.so...done.
>> Loaded symbols for /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/ 
>> Compress/Zlib/Zlib.so
>> Reading symbols from /lib/libz.so.3...done.
>> Loaded symbols for /lib/libz.so.3
>> Reading symbols from /usr/local/lib/perl5/site_perl/5.8.8/mach/ 
>> auto/HTML/Parser/Parser.so...done.
>> Loaded symbols for /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/ 
>> HTML/Parser/Parser.so
>> Reading symbols from /usr/local/lib/perl5/site_perl/5.8.8/mach/ 
>> auto/Crypt/SSLeay/SSLeay.so...done.
>> Loaded symbols for /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/ 
>> Crypt/SSLeay/SSLeay.so
>> Reading symbols from /usr/local/lib/libssl.so.5...done.
>> Loaded symbols for /usr/local/lib/libssl.so.5
>> Reading symbols from /usr/local/lib/libcrypto.so.5...done.
>> Loaded symbols for /usr/local/lib/libcrypto.so.5
>> Reading symbols from /libexec/ld-elf.so.1...done.
>> Loaded symbols for /libexec/ld-elf.so.1
>> #0  0x2839d420 in SSL_CTX_ctrl () from /usr/local/lib/libssl.so.5
>> [New LWP 100179]
>> (gdb) bt
>> #0  0x2839d420 in SSL_CTX_ctrl () from /usr/local/lib/libssl.so.5
>> #1  0x000001c0 in ?? ()
>> #2  0x0000000d in ?? ()
>> #3  0x28325000 in ?? ()
>> #4  0x00000000 in ?? ()
>> #5  0x283683b4 in __JCR_LIST__ () from /usr/local/lib/perl5/ 
>> site_perl/5.8.8/mach/auto/Crypt/SSLeay/SSLeay.so
>> #6  0x00000017 in ?? ()
>> #7  0x00000000 in ?? ()
>> #8  0x283608af in XS_Crypt__SSLeay__CTX_new (my_perl=0x8058000,  
>> cv=0x86b47b0) at SSLeay.xs:133
>> #9  0x2810fd9f in Perl_pp_entersub (my_perl=0x8058000) at pp_hot.c: 
>> 2913
>> #10 0x280f22d9 in Perl_runops_debug (my_perl=0x8058000) at dump.c: 
>> 1459
>> #11 0x2809e6b1 in S_run_body (my_perl=0x8058000, oldscope=4095) at  
>> perl.c:2366
>> #12 0x2809e222 in perl_run (my_perl=0x8058000) at perl.c:2283
>> #13 0x080492bc in main ()
>>
>> Summary of my perl5 (revision 5 version 8 subversion 8)  
>> configuration:
>>   Platform:
>>     osname=freebsd, osvers=6.1-release-p10, archname=i386-freebsd- 
>> thread-multi-64int
>>     uname='freebsd melchoir.ketralnis.com 6.1-release-p10 freebsd  
>> 6.1-release-p10 #5: mon oct 9 09:44:49 pdt 2006  
>> root at melchoir.ketralnis.com:usrobjusrsrcsysmelchoir i386 '
>>     config_args='-sde -Dprefix=/usr/local -Darchlib=/usr/local/lib/ 
>> perl5/5.8.8/mach -Dprivlib=/usr/local/lib/perl5/5.8.8 -Dman3dir=/ 
>> usr/local/lib/perl5/5.8.8/perl/man/man3 -Dman1dir=/usr/local/man/ 
>> man1 -Dsitearch=/usr/local/lib/perl5/site_perl/5.8.8/mach - 
>> Dsitelib=/usr/local/lib/perl5/site_perl/5.8.8 -Dscriptdir=/usr/ 
>> local/bin -Dsiteman3dir=/usr/local/lib/perl5/5.8.8/man/man3 - 
>> Dsiteman1dir=/usr/local/man/man1 -Ui_malloc -Ui_iconv - 
>> Uinstallusrbinperl -Dcc=cc -Duseshrplib -Dccflags=-DAPPLLIB_EXP="/ 
>> usr/local/lib/perl5/5.8.8/BSDPAN" -Doptimize=-O2 -fno-strict- 
>> aliasing -pipe -O -pipe -mtune=i686 -g -march=pentiumpro - 
>> Ud_dosuid -Ui_gdbm -Dusethreads=y -Dusemymalloc=n -Duse64bitint'
>>     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=undef uselongdouble=undef
>>     usemymalloc=n, bincompat5005=undef
>>   Compiler:
>>     cc='cc', ccflags ='-DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.8/ 
>> BSDPAN" -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DDEBUGGING -fno- 
>> strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/ 
>> include',
>>     optimize='-O2 -fno-strict-aliasing -pipe -O -pipe -mtune=i686 - 
>> g -march=pentiumpro',
>>     cppflags='-DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.8/BSDPAN" - 
>> DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DDEBUGGING -fno-strict- 
>> aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include'
>>     ccversion='', gccversion='3.4.4 [FreeBSD] 20050518',  
>> gccosandvers=''
>>     intsize=4, longsize=4, ptrsize=4, doublesize=8,  
>> byteorder=12345678
>>     d_longlong=define, longlongsize=8, d_longdbl=define,  
>> longdblsize=12
>>     ivtype='long long', ivsize=8, nvtype='double', nvsize=8,  
>> Off_t='off_t', lseeksize=8
>>     alignbytes=4, prototype=define
>>   Linker and Libraries:
>>     ld='cc', ldflags ='-pthread -Wl,-E -L/usr/local/lib'
>>     libpth=/usr/lib /usr/local/lib
>>     libs=-lgdbm -lm -lcrypt -lutil
>>     perllibs=-lm -lcrypt -lutil
>>     libc=, so=so, useshrplib=true, libperl=libperl.so
>>     gnulibc_version=''
>>   Dynamic Linking:
>>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='  - 
>> Wl,-R/usr/local/lib/perl5/5.8.8/mach/CORE'
>>     cccdlflags='-DPIC -fPIC', lddlflags='-shared  -L/usr/local/lib'
>>
>>
>> Characteristics of this binary (from libperl):
>>   Compile-time options: DEBUGGING MULTIPLICITY PERL_IMPLICIT_CONTEXT
>>                         PERL_MALLOC_WRAP USE_64_BIT_INT USE_ITHREADS
>>                         USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API
>>   Locally applied patches:
>>         defined-or
>>   Built under freebsd
>>   Compiled at Oct 10 2006 08:02:48
>>   @INC:
>>     /usr/local/lib/perl5/5.8.8/BSDPAN
>>     /usr/local/lib/perl5/site_perl/5.8.8/mach
>>     /usr/local/lib/perl5/site_perl/5.8.8
>>     /usr/local/lib/perl5/site_perl/5.8.7
>>     /usr/local/lib/perl5/site_perl/5.8.6
>>     /usr/local/lib/perl5/site_perl/5.8.5
>>     /usr/local/lib/perl5/site_perl/5.6.1
>>     /usr/local/lib/perl5/site_perl
>>     /usr/local/lib/perl5/5.8.8/mach
>>     /usr/local/lib/perl5/5.8.8
>>     .
>>
>>
>> Any ideas?
>> _______________________________________________
>> freebsd-questions at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>> To unsubscribe, send any mail to "freebsd-questions- 
>> unsubscribe at freebsd.org"
>
> --
> David King
> Computer Programmer
> Ketralnis Systems
>
>
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions- 
> unsubscribe at freebsd.org"

--
David King
Computer Programmer
Ketralnis Systems




More information about the freebsd-questions mailing list