You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Michael A Musta <mu...@raytheon.com> on 2003/02/06 17:28:15 UTC

mod_perl 1.27 intermittent Segmentation Faults





I am getting sporadic segmentation faults with mod_perl 1.27.
A look at the core dump always shows:

-----------------  lwp# 1 / thread# 1  --------------------
 0008b37c mod_perl_sent_header (360fc0, 997ec, 599394, 326c00, 0, 0) + 18
 00241c14 Perl_pp_entersub (31c800, 4a3d60, 4, 1, 0, ff00) + 568
 00239dc8 Perl_runops_standard (326c00, 1a, c0, 328c00, 37fd08, 59bba0) +
30
 001e8928 S_call_body (ffbef078, 0, 326c00, 40, 81010100, ff00) + 5c
 001e8398 Perl_call_sv (599394, 4d2cd4, 18, 392ed0, 326c00, 557178) + 250
 001e8138 Perl_call_method (2e9790, 0, 0, 329000, 64, 4d2cd4) + 18
 0023b720 Perl_pp_print (4d2cd0, 0, 4d2cd0, 1, 4d2cdc, 4d2cd8) + 1cc
 00239dc8 Perl_runops_standard (326c00, 326c00, ffbef2dc, 1, 0, 5af328) +
30
 001e8928 S_call_body (ffbef358, 0, 326400, 35e598, 326c00, ff00) + 5c
 001e8624 Perl_call_sv (0, 4d2cd0, 326c00, 2b6580, 0, 2d) + 4dc
 0008d760 perl_call_handler (3b73dc, 55cea8, 0, 2b6538, 0, ff00) + 5bc
 0008cf4c perl_run_stacked_handlers (2b5b30, 55cea8, 38a384, 0, 0, 425078)
+ 1d0
 0008c1bc perl_access (55cea8, 8c0f4, 323684, f72cc, 0, 424c98) + c8
 000f2c00 run_method (55cea8, 1b, 1, 0, 2f575354, 2f636769) + 88
 000f2cf0 ap_check_access (55cea8, 2cdf70, 2cdc00, 2cc1c1, 45, 65) + 1c
 00112750 process_request_internal (55cea8, 0, 2c0, 0, effffc00, 1) + 2dc
 00112be0 ap_process_request (55cea8, c8, 55cea8, ffbef738, ffbef748, 0) +
3c
 00105674 child_main (0, 1034c4, 103400, ff13b1e0, ff135910, ff12efc0) +
978
 00105a28 make_child (32b378, 0, 3e4282ab, 0, 10, ff02b404) + 1a4
 00105b4c startup_children (1, 0, 1, 307000, 6c6f6700, 6c6f6700) + b4
 00106580 standalone_main (2, ffbef9fc, 0, 0, ff23b01c, 2cbb68) + 2fc
 001071f4 main     (2, ffbef9fc, ffbefa08, 326464, 0, 0) + 548
 0004599c _start   (0, 0, 0, 0, 0, 0) + 5c

So, it is always happening at the 'mod_perl_sent_header'.
Sometimes it can take hours before a segmention fault occurs.
Sometimes it is immediate.  Every time I get the core dump,
the location is the same--mod_perl_sent_header.

Any information would be very helpful.

---Mike

Configuration info follows:
---------------------------

Environment information:

SunOS Solaris 8
===============
apache error_log:
=================
[Thu Feb  6 10:43:39 2003] [notice] Apache/1.3.27 (Unix) mod_perl/1.27
mod_fastcgi/2.2.12 mod_ssl/2.8.12 OpenSSL/0.9.6g configured -- resuming
normal operations
[Thu Feb  6 10:45:11 2003] [notice] child pid 1935 exit signal Segmentation
Fault (11), possible coredump in /opt/wstr/apache


mod_perl 1.27
=============

perl -V
=======
Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
  Platform:
    osname=solaris, osvers=2.8, archname=sun4-solaris
    uname='sunos caesun12 5.8 generic_108528-13 sun4u sparc sunw,ultraax-i2
'
    config_args='-de -Dcc=gcc -Dprefix=/opt/wstr/perl -Dstartperl
=#\!/usr/bin/env perl -Alibs=-lsocket -lnsl -ldl -lm -lc -lcrypt -lsec
-lthread'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef 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='gcc', ccflags ='-fno-strict-aliasing -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O',
    cppflags='-fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='2.95.3 20010315 (release)', gccosandvers
='solaris2.8'
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    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='gcc', ldflags =' -L/usr/local/lib '
    libpth=/usr/local/lib /usr/lib /usr/ccs/lib
    libs= -lsocket -lnsl -ldl -lm -lc -lcrypt -lsec -lthread
    perllibs=-lsocket -lnsl -ldl -lm -lc -lcrypt -lsec -lthread
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under solaris
  Compiled at Dec  9 2002 17:57:24
  @INC:
    /opt/wstr/perl/lib/5.8.0/sun4-solaris
    /opt/wstr/perl/lib/5.8.0
    /opt/wstr/perl/lib/site_perl/5.8.0/sun4-solaris
    /opt/wstr/perl/lib/site_perl/5.8.0
    /opt/wstr/perl/lib/site_perl


Apache version 1.3.27



mod_perl built with:

/opt/wstr/perl/bin/perl Makefile.PL \
APACHE_SRC=../apache_1.3.27/src \
DO_HTTPD=1 \
USE_APACI=1 \
PREP_HTTPD=1 \
EVERYTHING = 1


Apache configured as follows:

./configure --prefix=/opt/wstr/apache \
--with-perl="/usr/bin/env perl" \
--activate-module=src/modules/fastcgi/libfastcgi.a \
--activate-module=src/modules/perl/libperl.a \
--activate-module=src/modules/mod_auth_ldap/mod_auth_ldap.c \
--enable-module=most \
--enable-module=ssl \
--enable-module=so





Re: mod_perl 1.27 intermittent Segmentation Faults

Posted by Stas Bekman <st...@stason.org>.
Michael A Musta wrote:

> I am getting sporadic segmentation faults with mod_perl 1.27.
> A look at the core dump always shows:

Any chance you can set your debugger to show the real arguments and not only 
the addresses? That might help to see where the problem is. e.g., 
mod_perl_sent_header expects only two args.

for example here is a snippet from another core dump, generated with gdb:
#0  0x40750515 in mpxs_Apache__RequestRec_send_http_header (r=0x8156490,
     type=0x0)
     at /mnt/tmpfs/modperl-2.0/xs/Apache/Response/Apache__Response.h:26
#1  0x40751de3 in XS_Apache__RequestRec_send_http_header (my_perl=0x80c9ce8,
     cv=0x81a5160) at Response.xs:137


> -----------------  lwp# 1 / thread# 1  --------------------
>  0008b37c mod_perl_sent_header (360fc0, 997ec, 599394, 326c00, 0, 0) + 18
>  00241c14 Perl_pp_entersub (31c800, 4a3d60, 4, 1, 0, ff00) + 568
>  00239dc8 Perl_runops_standard (326c00, 1a, c0, 328c00, 37fd08, 59bba0) +
> 30
>  001e8928 S_call_body (ffbef078, 0, 326c00, 40, 81010100, ff00) + 5c
>  001e8398 Perl_call_sv (599394, 4d2cd4, 18, 392ed0, 326c00, 557178) + 250
>  001e8138 Perl_call_method (2e9790, 0, 0, 329000, 64, 4d2cd4) + 18
>  0023b720 Perl_pp_print (4d2cd0, 0, 4d2cd0, 1, 4d2cdc, 4d2cd8) + 1cc
>  00239dc8 Perl_runops_standard (326c00, 326c00, ffbef2dc, 1, 0, 5af328) +
> 30
>  001e8928 S_call_body (ffbef358, 0, 326400, 35e598, 326c00, ff00) + 5c
>  001e8624 Perl_call_sv (0, 4d2cd0, 326c00, 2b6580, 0, 2d) + 4dc
>  0008d760 perl_call_handler (3b73dc, 55cea8, 0, 2b6538, 0, ff00) + 5bc
>  0008cf4c perl_run_stacked_handlers (2b5b30, 55cea8, 38a384, 0, 0, 425078)
> + 1d0
>  0008c1bc perl_access (55cea8, 8c0f4, 323684, f72cc, 0, 424c98) + c8
>  000f2c00 run_method (55cea8, 1b, 1, 0, 2f575354, 2f636769) + 88
>  000f2cf0 ap_check_access (55cea8, 2cdf70, 2cdc00, 2cc1c1, 45, 65) + 1c
>  00112750 process_request_internal (55cea8, 0, 2c0, 0, effffc00, 1) + 2dc
>  00112be0 ap_process_request (55cea8, c8, 55cea8, ffbef738, ffbef748, 0) +
> 3c
>  00105674 child_main (0, 1034c4, 103400, ff13b1e0, ff135910, ff12efc0) +
> 978
>  00105a28 make_child (32b378, 0, 3e4282ab, 0, 10, ff02b404) + 1a4
>  00105b4c startup_children (1, 0, 1, 307000, 6c6f6700, 6c6f6700) + b4
>  00106580 standalone_main (2, ffbef9fc, 0, 0, ff23b01c, 2cbb68) + 2fc
>  001071f4 main     (2, ffbef9fc, ffbefa08, 326464, 0, 0) + 548
>  0004599c _start   (0, 0, 0, 0, 0, 0) + 5c
> 
> So, it is always happening at the 'mod_perl_sent_header'.
> Sometimes it can take hours before a segmention fault occurs.
> Sometimes it is immediate.  Every time I get the core dump,
> the location is the same--mod_perl_sent_header.


-- 


__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com