You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by John D Groenveld <jd...@elvis.arl.psu.edu> on 2002/01/14 00:27:41 UTC

segfault when using PerlRequire

I hesitate to post this because I haven't kept up with my reading. I did 
do several searches of my 28K message modperl mail folder and the list
archives.

My httpd.conf reads...
LoadModule perl_module          /opt/apache/libexec/libperl.so
#PerlModule Apache::Status
PerlRequire /home/stevens.1/apache-perl/conf/startup.pl

If I uncomment the PerlModule config, then no core dump.
If I downgrade to perl-5.0.3, then no core dump.
If I Configure -Uuselargefiles, I still core dump.

Solaris bug, Perl bug, modperl bug, Apache bug, or driver error?
Thanks,
John
groenveld@acm.org

gdb /opt/apache/bin/httpd
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-pc-solaris2.7"...
(gdb) run -d /home/stevens.1/apache-perl -X
Starting program: /opt/apache/bin/httpd -d /home/stevens.1/apache-perl -X

Program received signal SIGSEGV, Segmentation fault.
0xdf7eaf83 in S_new_xpvnv () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/libper
l.so
(gdb) bt
#0  0xdf7eaf83 in S_new_xpvnv () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/li
bperl.so
#1  0xdf7eb859 in Perl_sv_upgrade () from /opt/perl/lib/5.6.1/i86pc-solaris/COR
E/libperl.so
#2  0xdf7ba53a in Perl_pad_allocmy () from /opt/perl/lib/5.6.1/i86pc-solaris/CO
RE/libperl.so
#3  0xdf7a5f29 in Perl_yylex () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/lib
perl.so
#4  0xdf7b7f4f in Perl_yyparse () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/l
ibperl.so
#5  0xdf80ce5a in S_doeval () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/libpe
rl.so
#6  0xdf80e1c8 in Perl_pp_require () from /opt/perl/lib/5.6.1/i86pc-solaris/COR
E/libperl.so
#7  0xdf7e36cd in Perl_runops_standard () from /opt/perl/lib/5.6.1/i86pc-solari
s/CORE/libperl.so
#8  0xdf79ba0c in S_call_body () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/li
bperl.so
#9  0xdf79b772 in Perl_call_sv () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/l
ibperl.so
#10 0xdf79eacb in S_call_list_body () from /opt/perl/lib/5.6.1/i86pc-solaris/CO
RE/libperl.so
#11 0xdf79e743 in Perl_call_list () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE
/libperl.so
#12 0xdf7c37eb in Perl_newATTRSUB () from /opt/perl/lib/5.6.1/i86pc-solaris/COR
E/libperl.so
#13 0xdf7c0636 in Perl_utilize () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/l
ibperl.so
#14 0xdf7b8d1a in Perl_yyparse () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/l
ibperl.so
#15 0xdf80ce5a in S_doeval () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/libpe
rl.so
#16 0xdf80e1c8 in Perl_pp_require () from /opt/perl/lib/5.6.1/i86pc-solaris/COR
E/libperl.so
#17 0xdf7e36cd in Perl_runops_standard () from /opt/perl/lib/5.6.1/i86pc-solari
s/CORE/libperl.so
#18 0xdf79ba0c in S_call_body () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/li
bperl.so
#19 0xdf79bb92 in Perl_eval_sv () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/l
ibperl.so
#20 0xdf546147 in perl_do_file () from /opt/apache/libexec/libperl.so
#21 0xdf5461f2 in perl_load_startup_script () from 
/opt/apache/libexec/libperl.so
#22 0xdf540f93 in perl_cmd_require () from /opt/apache/libexec/libperl.so
#23 0x805e15b in invoke_cmd ()
#24 0x805e629 in ap_handle_command ()
#25 0x805e6cb in ap_srm_command_loop ()
#26 0x805ed93 in ap_process_resource_config ()
#27 0x805f718 in ap_read_config ()
#28 0x806a26b in standalone_main ()
#29 0x806abf0 in main ()
#30 0x8057bf3 in _start ()

perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=solaris, osvers=2.7, archname=i86pc-solaris
    uname='sunos stevens 5.7 generic_106542-18 i86pc i386 i86pc '
    config_args='-Dprefix=/opt/perl -Dcc=gcc -Duseshrplib -Uusemymalloc'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef 
usemultiplicity=undef
    useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
  Compiler:
    cc='gcc', ccflags ='-fno-strict-aliasing -I/opt/gnu/include 
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O',
    cppflags='-fno-strict-aliasing -I/opt/gnu/include'
    ccversion='', gccversion='2.95.3 20010315 (release)', 
gccosandvers='solaris2.7'
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', 
lseeksize=8
    alignbytes=4, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags ='-L/opt/gnu/lib -R/opt/gnu/lib '
    libpth=/opt/gnu/lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl -lgdbm -ldl -lm -lc
    perllibs=-lsocket -lnsl -ldl -lm -lc
    libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='  -R 
/opt/perl/lib/5.6.1/i86pc-solaris/CORE'
    cccdlflags='-fPIC', lddlflags='-G -L/opt/gnu/lib -R/opt/gnu/lib'


Characteristics of this binary (from libperl): 
  Compile-time options: USE_LARGE_FILES
  Built under solaris
  Compiled at Jan 13 2002 17:09:29
  @INC:
    /opt/perl/lib/5.6.1/i86pc-solaris
    /opt/perl/lib/5.6.1
    /opt/perl/lib/site_perl/5.6.1/i86pc-solaris
    /opt/perl/lib/site_perl/5.6.1
    /opt/perl/lib/site_perl
    .



Re: segfault when using PerlRequire

Posted by Stas Bekman <st...@stason.org>.
John D Groenveld wrote:

> I hesitate to post this because I haven't kept up with my reading. I did 
> do several searches of my 28K message modperl mail folder and the list
> archives.
> 
> My httpd.conf reads...
> LoadModule perl_module          /opt/apache/libexec/libperl.so
> #PerlModule Apache::Status
> PerlRequire /home/stevens.1/apache-perl/conf/startup.pl
> 
> If I uncomment the PerlModule config, then no core dump.
> If I downgrade to perl-5.0.3, then no core dump.
> If I Configure -Uuselargefiles, I still core dump.
> 
> Solaris bug, Perl bug, modperl bug, Apache bug, or driver error?


I assume that you use Apache DSO. I think that you need to rebuild your 
perl with -Ubincompat5005. I cannot see the value of bincompat5005 in 
your 'perl -V' 
http://perl.apache.org/guide/install.html#When_DSO_can_be_Used


> Thanks,
> John
> groenveld@acm.org
> 
> gdb /opt/apache/bin/httpd
> GNU gdb 5.0
> Copyright 2000 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i386-pc-solaris2.7"...
> (gdb) run -d /home/stevens.1/apache-perl -X
> Starting program: /opt/apache/bin/httpd -d /home/stevens.1/apache-perl -X
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0xdf7eaf83 in S_new_xpvnv () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/libper
> l.so
> (gdb) bt
> #0  0xdf7eaf83 in S_new_xpvnv () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/li
> bperl.so
> #1  0xdf7eb859 in Perl_sv_upgrade () from /opt/perl/lib/5.6.1/i86pc-solaris/COR
> E/libperl.so
> #2  0xdf7ba53a in Perl_pad_allocmy () from /opt/perl/lib/5.6.1/i86pc-solaris/CO
> RE/libperl.so
> #3  0xdf7a5f29 in Perl_yylex () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/lib
> perl.so
> #4  0xdf7b7f4f in Perl_yyparse () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/l
> ibperl.so
> #5  0xdf80ce5a in S_doeval () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/libpe
> rl.so
> #6  0xdf80e1c8 in Perl_pp_require () from /opt/perl/lib/5.6.1/i86pc-solaris/COR
> E/libperl.so
> #7  0xdf7e36cd in Perl_runops_standard () from /opt/perl/lib/5.6.1/i86pc-solari
> s/CORE/libperl.so
> #8  0xdf79ba0c in S_call_body () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/li
> bperl.so
> #9  0xdf79b772 in Perl_call_sv () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/l
> ibperl.so
> #10 0xdf79eacb in S_call_list_body () from /opt/perl/lib/5.6.1/i86pc-solaris/CO
> RE/libperl.so
> #11 0xdf79e743 in Perl_call_list () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE
> /libperl.so
> #12 0xdf7c37eb in Perl_newATTRSUB () from /opt/perl/lib/5.6.1/i86pc-solaris/COR
> E/libperl.so
> #13 0xdf7c0636 in Perl_utilize () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/l
> ibperl.so
> #14 0xdf7b8d1a in Perl_yyparse () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/l
> ibperl.so
> #15 0xdf80ce5a in S_doeval () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/libpe
> rl.so
> #16 0xdf80e1c8 in Perl_pp_require () from /opt/perl/lib/5.6.1/i86pc-solaris/COR
> E/libperl.so
> #17 0xdf7e36cd in Perl_runops_standard () from /opt/perl/lib/5.6.1/i86pc-solari
> s/CORE/libperl.so
> #18 0xdf79ba0c in S_call_body () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/li
> bperl.so
> #19 0xdf79bb92 in Perl_eval_sv () from /opt/perl/lib/5.6.1/i86pc-solaris/CORE/l
> ibperl.so
> #20 0xdf546147 in perl_do_file () from /opt/apache/libexec/libperl.so
> #21 0xdf5461f2 in perl_load_startup_script () from 
> /opt/apache/libexec/libperl.so
> #22 0xdf540f93 in perl_cmd_require () from /opt/apache/libexec/libperl.so
> #23 0x805e15b in invoke_cmd ()
> #24 0x805e629 in ap_handle_command ()
> #25 0x805e6cb in ap_srm_command_loop ()
> #26 0x805ed93 in ap_process_resource_config ()
> #27 0x805f718 in ap_read_config ()
> #28 0x806a26b in standalone_main ()
> #29 0x806abf0 in main ()
> #30 0x8057bf3 in _start ()
> 
> perl -V
> Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
>   Platform:
>     osname=solaris, osvers=2.7, archname=i86pc-solaris
>     uname='sunos stevens 5.7 generic_106542-18 i86pc i386 i86pc '
>     config_args='-Dprefix=/opt/perl -Dcc=gcc -Duseshrplib -Uusemymalloc'
>     hint=recommended, useposix=true, d_sigaction=define
>     usethreads=undef use5005threads=undef useithreads=undef 
> usemultiplicity=undef
>     useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
>     use64bitint=undef use64bitall=undef uselongdouble=undef
>   Compiler:
>     cc='gcc', ccflags ='-fno-strict-aliasing -I/opt/gnu/include 
> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
>     optimize='-O',
>     cppflags='-fno-strict-aliasing -I/opt/gnu/include'
>     ccversion='', gccversion='2.95.3 20010315 (release)', 
> gccosandvers='solaris2.7'
>     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
>     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
>     ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', 
> lseeksize=8
>     alignbytes=4, usemymalloc=n, prototype=define
>   Linker and Libraries:
>     ld='gcc', ldflags ='-L/opt/gnu/lib -R/opt/gnu/lib '
>     libpth=/opt/gnu/lib /usr/lib /usr/ccs/lib
>     libs=-lsocket -lnsl -lgdbm -ldl -lm -lc
>     perllibs=-lsocket -lnsl -ldl -lm -lc
>     libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='  -R 
> /opt/perl/lib/5.6.1/i86pc-solaris/CORE'
>     cccdlflags='-fPIC', lddlflags='-G -L/opt/gnu/lib -R/opt/gnu/lib'
> 
> 
> Characteristics of this binary (from libperl): 
>   Compile-time options: USE_LARGE_FILES
>   Built under solaris
>   Compiled at Jan 13 2002 17:09:29
>   @INC:
>     /opt/perl/lib/5.6.1/i86pc-solaris
>     /opt/perl/lib/5.6.1
>     /opt/perl/lib/site_perl/5.6.1/i86pc-solaris
>     /opt/perl/lib/site_perl/5.6.1
>     /opt/perl/lib/site_perl
>     .
> 
> 



-- 


_____________________________________________________________________
Stas Bekman             JAm_pH      --   Just Another mod_perl Hacker
http://stason.org/      mod_perl Guide   http://perl.apache.org/guide
mailto:stas@stason.org  http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/