You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Jed Hamilton <je...@crsonesource.com> on 2007/06/12 16:20:53 UTC

[mp2] apache segfault when started

1. Problem Description:

I am having a problem where apache(2.0.59/prefork) will segfault when 
the mod_perl module is added to the httpd.conf.  The odd thing is that 
this only occurs when apache is started for the first time.  If I have 
apache already running(without mod_perl loaded), and I change the .conf 
file to load in the mod_perl module, and then restart apache (-k 
restart), it loads up fine.  I am able to have mod_perl handle scripts 
just fine, but only if I restart it as described above.  Apache's log, 
when started with the 'loadmodule perl_module' directive, states this:
[notice] seg fault or similar nasty error detected in the parent process

below, I have used gdb to create a backtrace (under the core dump 
section).  Any help or advise is appreciated.


2. Used Components and their Configuration:

*** mod_perl version 2.000003

*** using /home/liquid/mod_perl-2.0.3/lib/Apache2/BuildConfig.pm

*** Makefile.PL options:
  MP_APR_LIB     => aprext
  MP_APXS        => /usr/sbin/apxs
  MP_COMPAT_1X   => 1
  MP_GENERATE_XS => 1
  MP_LIBNAME     => mod_perl
  MP_USE_DSO     => 1


*** The httpd binary was not found


*** (apr|apu)-config linking info

 -L/usr/lib -laprutil-0 -lexpat -liconv -L/var/www/lib
 -L/usr/lib -lapr-0 -lm -lresolv



*** /usr/bin/perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=openbsd, osvers=3.2, archname=i386-openbsd
    uname='openbsd'
    config_args='-Dopenbsd_distribution=defined -dsE'
    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='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include',
    optimize='-O2',
    cppflags='-fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='2.95.3 20010125 (prerelease)', 
gccosandvers='openbsd3.2'
    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='cc', ldflags =''
    libpth=/usr/lib
    libs=-lm -lc -lutil
    perllibs=-lm -lc -lutil
    libc=/usr/lib/libc.a, so=so, useshrplib=true, libperl=libperl.so.6.1
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=define, 
ccdlflags='-Wl,-R/usr/libdata/perl5/i386-openbsd/5.6.1/CORE'
    cccdlflags='-DPIC -fPIC ', lddlflags='-shared -fPIC '
Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under openbsd
  Compiled at Oct  2 2002 06:07:24
  %ENV:
    PERL_LWP_USE_HTTP_10="1"
  @INC:
    /usr/libdata/perl5/i386-openbsd/5.6.1
 /local/libdata/perl5/i386-openbsd/5.6.11
 /libdata/perl5
 /local/libdata/perl5
 /local/libdata/perl5/site_perl/i386-openbsd
 /libdata/perl5/site_perl/i386-openbsd
 /local/libdata/perl5/site_perl
 /libdata/perl5/site_perl
 /local/lib/perl5/site_perl
.

*** Packages of interest status:

Apache2            : -
::Request          : -
CGI                : 3.29
ExtUtils::MakeMaker: 5.45
LWP                : -
mod_perl           : -
mod_perl2          : 2.000003


3. This is the core dump trace: (if you get a core dump):

bash# gdb httpd /var/www/httpd.core
warning: failed to install memory consistency checks; configuration 
should define NO_MMCHECK or MMCHECK_FORCE
GNU gdb 4.16.1
Copyright 1996 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-unknown-openbsd3.2"...
Core was generated by `httpd'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/libexec/ld.so...done.
Reading symbols from /usr/lib/libz.so.1.4...done.
Reading symbols from /usr/lib/libaprutil-0.so.9.12...done.
Reading symbols from /usr/lib/libexpat.so.1.0...done.
Reading symbols from /usr/lib/libiconv.so.4.0...done.
Reading symbols from /usr/lib/libapr-0.so.9.12...done.
Reading symbols from /usr/lib/libm.so.0.1...done.
Reading symbols from /usr/lib/libc_r.so.6.5...done.
Reading symbols from /usr/lib/libc.so.28.5...done.
Reading symbols from /usr/lib/libutil.so.7.1...done.
Reading symbols from /var/www/modules/libphp4.so...done.
Reading symbols from /usr/lib/apache/modules/mod_perl.so...done.
#0  0x405312e6 in Perl_report_uninit ()
(gdb) run -X
Starting program: /usr/sbin/httpd -X

Program received signal SIGSEGV, Segmentation fault.
0x405223fe in modperl_mgv_lookup ()
(gdb) bt
#0  0x405223fe in modperl_mgv_lookup ()
#1  0x1708e4 in ?? () from /usr/lib/apache/modules/mod_perl.so
#2  0x40522bd1 in modperl_mgv_as_string ()
#3  0x40523fbc in modperl_env_default_populate ()
#4  0x4052fe17 in modperl_flags_lookup_srv ()
#5  0x4050840c in ?? () from /usr/lib/apache/modules/mod_perl.so
#6  0x405083b9 in ?? () from /usr/lib/apache/modules/mod_perl.so
#7  0x40508891 in ?? () from /usr/lib/apache/modules/mod_perl.so
#8  0x40508b43 in ?? () from /usr/lib/apache/modules/mod_perl.so
#9  0x677a1 in ap_run_open_logs ()
#10 0x70346 in L69 ()
(gdb) quit
The program is running.  Quit anyway (and kill it)? (y or n) y


This report was generated by t/REPORT on Tue Jun 12 13:58:36 2007 GMT.