1. Problem Description:

If I declare a <Perl> section in httpd.conf, then define
a virtual host with "PerlOptions +Parent", httpd dies with
a segfault on subsequent PerlRequires. This works in 2.0.1.
Here's a minimal example, tacked on to the end of the
default httpd.conf:

--- httpd.conf ---

<Perl>
1;
</Perl>

<VirtualHost _default_:80>
   ServerAdmin [EMAIL PROTECTED]
   DocumentRoot /www/docs/dummy-host.example.com
   ServerName dummy-host.example.com
   ErrorLog logs/dummy-host.example.com-error_log
   CustomLog logs/dummy-host.example.com-access_log common
   PerlOptions +Parent
   PerlRequire /etc/httpd/conf/startup.pl
</VirtualHost>

--- startup.pl ---

use strict;

1;

Is this just bad syntax on our part that luckily Just
Worked or is this broken behavior in 2.0.2? We've been
using it to dynamically pull in various virtual hosts
based on host and domain name, but we could accomplish
the same thing with a clunky set if IfDefines, if we
have to.

2. Used Components and their Configuration (2.0.2):

*** mod_perl version 2.000002

*** using /tmp/mod_perl-2.0.2/lib/Apache2/BuildConfig.pm

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


*** /usr/sbin/httpd -V
Server version: Apache/2.0.52
Server built:   Dec 15 2005 04:09:14
Server's Module Magic Number: 20020903:9
Architecture:   32-bit
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

*** /usr/bin/ldd /usr/sbin/httpd
       libpcre.so.0 => /lib/libpcre.so.0 (0x00865000)
       libpcreposix.so.0 => /usr/lib/libpcreposix.so.0 (0x003fa000)
       libaprutil-0.so.0 => /usr/lib/libaprutil-0.so.0 (0x009c1000)
       libldap-2.2.so.7 => /usr/lib/libldap-2.2.so.7 (0x004de000)
       liblber-2.2.so.7 => /usr/lib/liblber-2.2.so.7 (0x00709000)
       libdb-4.2.so => /lib/tls/i686/libdb-4.2.so (0x00252000)
       libexpat.so.0 => /usr/lib/libexpat.so.0 (0x00d7e000)
       libapr-0.so.0 => /usr/lib/libapr-0.so.0 (0x00e65000)
       librt.so.1 => /lib/tls/librt.so.1 (0x00a75000)
       libm.so.6 => /lib/tls/libm.so.6 (0x00ead000)
       libcrypt.so.1 => /lib/libcrypt.so.1 (0x00111000)
       libpthread.so.0 => /lib/tls/libpthread.so.0 (0x009e5000)
       libdl.so.2 => /lib/libdl.so.2 (0x005f5000)
       libc.so.6 => /lib/tls/libc.so.6 (0x00715000)
       libresolv.so.2 => /lib/libresolv.so.2 (0x00a2d000)
       libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x0013f000)
       libssl.so.4 => /lib/libssl.so.4 (0x00153000)
       libcrypto.so.4 => /lib/libcrypto.so.4 (0x005f9000)
       /lib/ld-linux.so.2 (0x00ac6000)
       libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00187000)
       libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00429000)
       libcom_err.so.2 => /lib/libcom_err.so.2 (0x005ad000)
       libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00e1d000)
       libz.so.1 => /usr/lib/libz.so.1 (0x00efb000)


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

-laprutil-0 -lldap -llber -ldb-4.2 -lexpat
-lapr-0 -lrt -lm -lcrypt  -lpthread -ldl



*** /usr/bin/perl -V
Summary of my perl5 (revision 5 version 8 subversion 5) configuration:
 Platform:
osname=linux, osvers=2.6.9-22.18.bz155725.elsmp, archname=i386-linux-thread-multi uname='linux hs20-bc1-4.build.redhat.com 2.6.9-22.18.bz155725.elsmp #1 smp thu nov 17 15:34:08 est 2005 i686 i686 i386 gnulinux ' config_args='-des -Doptimize=-O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -Dversion=5.8.5 -Dmyhostname=localhost [EMAIL PROTECTED] -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux -Dvendorprefix=/usr -Dsiteprefix=/usr -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dinc_version_list=5.8.4 5.8.3 5.8.2 5.8.1 5.8.0'
   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=undef use64bitall=undef uselongdouble=undef
   usemymalloc=n, bincompat5005=undef
 Compiler:
cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
   optimize='-O2 -g -pipe -m32 -march=i386 -mtune=pentium4',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -I/usr/include/gdbm' ccversion='', gccversion='3.4.5 20051201 (Red Hat 3.4.5-1)', gccosandvers=''
   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, prototype=define
 Linker and Libraries:
   ld='gcc', ldflags =' -L/usr/local/lib'
   libpth=/usr/local/lib /lib /usr/lib
   libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
   perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
   libc=/lib/libc-2.3.4.so, so=so, useshrplib=true, libperl=libperl.so
   gnulibc_version='2.3.4'
 Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE'
   cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
 Built under linux
 Compiled at Dec 16 2005 14:06:35
 %ENV:
   PERL_LWP_USE_HTTP_10="1"
 @INC:
   /usr/lib/perl5/5.8.5/i386-linux-thread-multi
   /usr/lib/perl5/5.8.5
   /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.5
   /usr/lib/perl5/site_perl/5.8.4
   /usr/lib/perl5/site_perl/5.8.3
   /usr/lib/perl5/site_perl/5.8.2
   /usr/lib/perl5/site_perl/5.8.1
   /usr/lib/perl5/site_perl/5.8.0
   /usr/lib/perl5/site_perl
   /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.5
   /usr/lib/perl5/vendor_perl/5.8.4
   /usr/lib/perl5/vendor_perl/5.8.3
   /usr/lib/perl5/vendor_perl/5.8.2
   /usr/lib/perl5/vendor_perl/5.8.1
   /usr/lib/perl5/vendor_perl/5.8.0
   /usr/lib/perl5/vendor_perl
   .

*** Packages of interest status:

Apache2            : -
Apache2::Request   : -
CGI                : 3.15
ExtUtils::MakeMaker: 6.17
LWP                : 5.79, 5.805
mod_perl           : -
mod_perl2          : 2.000002


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

#0  0x00516f3f in modperl_config_srv_merge (p=0x859c0a8, basev=0x85e7650,
   addv=0x871f570) at modperl_config.c:306
#1  0x00c3b6de in ap_fixup_virtual_hosts () from /usr/sbin/httpd
#2  0x00c3e144 in main () from /usr/sbin/httpd

4. Used Components and their Configuration (2.0.1):

*** mod_perl version 2.000001

*** using /tmp/mod_perl-2.0.1/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


*** /usr/sbin/httpd -V
Server version: Apache/2.0.52
Server built:   Dec 15 2005 04:09:14
Server's Module Magic Number: 20020903:9
Architecture:   32-bit
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

*** /usr/bin/ldd /usr/sbin/httpd
       libpcre.so.0 => /lib/libpcre.so.0 (0x00464000)
       libpcreposix.so.0 => /usr/lib/libpcreposix.so.0 (0x00713000)
       libaprutil-0.so.0 => /usr/lib/libaprutil-0.so.0 (0x00828000)
       libldap-2.2.so.7 => /usr/lib/libldap-2.2.so.7 (0x005f9000)
       liblber-2.2.so.7 => /usr/lib/liblber-2.2.so.7 (0x00f83000)
       libdb-4.2.so => /lib/tls/i686/libdb-4.2.so (0x00db6000)
       libexpat.so.0 => /usr/lib/libexpat.so.0 (0x00111000)
       libapr-0.so.0 => /usr/lib/libapr-0.so.0 (0x00689000)
       librt.so.1 => /lib/tls/librt.so.1 (0x00130000)
       libm.so.6 => /lib/tls/libm.so.6 (0x005a8000)
       libcrypt.so.1 => /lib/libcrypt.so.1 (0x00208000)
       libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00352000)
       libdl.so.2 => /lib/libdl.so.2 (0x00421000)
       libc.so.6 => /lib/tls/libc.so.6 (0x00474000)
       libresolv.so.2 => /lib/libresolv.so.2 (0x00144000)
       libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00157000)
       libssl.so.4 => /lib/libssl.so.4 (0x0016b000)
       libcrypto.so.4 => /lib/libcrypto.so.4 (0x009a6000)
       /lib/ld-linux.so.2 (0x00afb000)
       libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x0019f000)
       libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00236000)
       libcom_err.so.2 => /lib/libcom_err.so.2 (0x00320000)
       libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x001b3000)
       libz.so.1 => /usr/lib/libz.so.1 (0x001d4000)


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

-laprutil-0 -lldap -llber -ldb-4.2 -lexpat
-lapr-0 -lrt -lm -lcrypt  -lpthread -ldl



*** /usr/bin/perl -V
Summary of my perl5 (revision 5 version 8 subversion 5) configuration:
 Platform:
osname=linux, osvers=2.6.9-22.18.bz155725.elsmp, archname=i386-linux-thread-multi uname='linux hs20-bc1-4.build.redhat.com 2.6.9-22.18.bz155725.elsmp #1 smp thu nov 17 15:34:08 est 2005 i686 i686 i386 gnulinux ' config_args='-des -Doptimize=-O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -Dversion=5.8.5 -Dmyhostname=localhost [EMAIL PROTECTED] -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux -Dvendorprefix=/usr -Dsiteprefix=/usr -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dinc_version_list=5.8.4 5.8.3 5.8.2 5.8.1 5.8.0'
   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=undef use64bitall=undef uselongdouble=undef
   usemymalloc=n, bincompat5005=undef
 Compiler:
cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
   optimize='-O2 -g -pipe -m32 -march=i386 -mtune=pentium4',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -I/usr/include/gdbm' ccversion='', gccversion='3.4.5 20051201 (Red Hat 3.4.5-1)', gccosandvers=''
   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, prototype=define
 Linker and Libraries:
   ld='gcc', ldflags =' -L/usr/local/lib'
   libpth=/usr/local/lib /lib /usr/lib
   libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
   perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
   libc=/lib/libc-2.3.4.so, so=so, useshrplib=true, libperl=libperl.so
   gnulibc_version='2.3.4'
 Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE'
   cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
 Built under linux
 Compiled at Dec 16 2005 14:06:35
 %ENV:
   PERL_LWP_USE_HTTP_10="1"
 @INC:
   /usr/lib/perl5/5.8.5/i386-linux-thread-multi
   /usr/lib/perl5/5.8.5
   /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
   /usr/lib/perl5/site_perl/5.8.5
   /usr/lib/perl5/site_perl/5.8.4
   /usr/lib/perl5/site_perl/5.8.3
   /usr/lib/perl5/site_perl/5.8.2
   /usr/lib/perl5/site_perl/5.8.1
   /usr/lib/perl5/site_perl/5.8.0
   /usr/lib/perl5/site_perl
   /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
   /usr/lib/perl5/vendor_perl/5.8.5
   /usr/lib/perl5/vendor_perl/5.8.4
   /usr/lib/perl5/vendor_perl/5.8.3
   /usr/lib/perl5/vendor_perl/5.8.2
   /usr/lib/perl5/vendor_perl/5.8.1
   /usr/lib/perl5/vendor_perl/5.8.0
   /usr/lib/perl5/vendor_perl
   .

*** Packages of interest status:

Apache2            : -
Apache2::Request   : -
CGI                : 3.15
ExtUtils::MakeMaker: 6.17
LWP                : 5.79, 5.805
mod_perl           : -
mod_perl2          : 2.000001

____________________________________________________________
Eamon Daly

Reply via email to