You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Gordon Lack <gm...@ggr.co.uk> on 2005/08/18 20:17:48 UTC
make test fails (Solaris and Linux, same problem)
1. Problem Description:
The server core dumps when running make test.
This happens on both Solaris and Linux systems (with the equivalent
perl, Apache and mod_perl configurations).
Having got the core dump info I added some printf statements to the
start of ap_pcw_walk_files_config in modperl_pcw.c to print the values
of dconf, dconf->sec_file and dconf->sec_file->elts.
This showed:
GML dconf: ab0e0
GML dconf->sec_file: 2
(and then a SIGSEGV trying to use this "2" as a point to get to
dconf->sec_file->elts).
This 2 looks decidely unpointer-like. Could Apache and mod_perl differ
over what they think is in a core_dir_config struct and hence
dconf->sec_file refer to a different offset?
2. Used Components and their Configuration:
*** mod_perl version 2.000001
*** using /local/GML/Apache2/mod_perl-2.0.1/lib/Apache2/BuildConfig.pm
*** Makefile.PL options:
MP_APR_LIB => aprext
MP_AP_PREFIX => /local/GML/install/apache2
MP_COMPAT_1X => 0
MP_DEBUG => 1
MP_GENERATE_XS => 1
MP_LIBNAME => mod_perl
MP_TRACE => 1
MP_USE_DSO => 1
*** /local/GML/install/apache2/bin/httpd -V
Server version: Apache/2.0.54
Server built: Aug 17 2005 18:25:24
Server's Module Magic Number: 20020903:9
Architecture: 32-bit
Server compiled with....
-D BIG_SECURITY_HOLE
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FCNTL_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="/local/GML/install/apache2"
-D SUEXEC_BIN="/local/GML/install/apache2/bin/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"
*** (apr|apu)-config linking info
-L/local/GML/install/apache2/lib -laprutil-0 -lgdbm -ldb-4.2 -lexpat
-L/local/GML/install/apache2/lib -lapr-0 -lrt -lm -lsocket -lnsl -lresolv -lpthread -ldl
*** /GWD/bioinfo/tools/bin/perl -V
Summary of my perl5 (revision 5 version 8 subversion 5) configuration:
Platform:
osname=solaris, osvers=2.6, archname=sun4-solaris-thread-multi
uname='sunos phu638.um.us.sbphrd.com 5.6 generic_105181-03 sun4u sparc sunw,ultra-4 '
config_args='-dE'
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='/opt/SUNWspro/bin/cc', ccflags ='-D_REENTRANT -I/GWD/bioinfo/tools/include -I/GWD/bioinfo/common/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-D_REENTRANT -I/GWD/bioinfo/tools/include -I/GWD/bioinfo/common/include'
ccversion='Forte Developer 7 C 5.4 2002/03/09', gccversion='', gccosandvers=''
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='/opt/SUNWspro/bin/cc', ldflags ='-L/GWD/bioinfo/tools/lib -R/GWD/bioinfo/tools/lib -L/usr/ccs/lib '
libpth=/GWD/bioinfo/tools/lib /lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lpthread -lc
perllibs=-lsocket -lnsl -ldl -lm -lpthread -lc
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='-KPIC', lddlflags='-G -L/GWD/bioinfo/tools/lib -R/GWD/bioinfo/tools/lib -L/usr/ccs/lib'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
Built under solaris
Compiled at Jul 28 2004 07:08:42
%ENV:
PERL_LWP_USE_HTTP_10="1"
@INC:
/GWD/bioinfo/tools/lib/perl5/5.8.5
/GWD/bioinfo/common/lib/perl5/5.8.5
/GWD/bioinfo/tools/lib/perl5/site_perl/5.8.5
/GWD/bioinfo/common/lib/perl5/site_perl/5.8.5
/GWD/bioinfo/common/lib/perl5/site_perl
.
*** Packages of interest status:
Apache2 : -
Apache2::Request : -
CGI : 3.05
ExtUtils::MakeMaker: 6.17
LWP : 5.800
mod_perl : -
mod_perl2 : -
3. This is the core dump trace: (if you get a core dump):
Solaris version:
t@1 (l@1) terminated by signal BUS (invalid address alignment)
Current function is ap_pcw_walk_files_config
67 ap_conf_vector_t **dirs = (ap_conf_vector_t **)dconf->sec_file->elts;
=>[1] ap_pcw_walk_files_config(pconf = 0x90818, s = 0xaa9f8,
dconf = 0xab0e0, modp = 0xfdf59048, dir_cb = 0xfde18dd8 =
&`mod_perl.so`modperl_mgv.c`modperl_hash_handlers_dir(),
data = (nil)),
line 67 in "modperl_pcw.c"
[2] ap_pcw_walk_config(pconf = 0x90818, s = 0xaa9f8, modp = 0xfdf59048,
data = (nil), dir_cb = 0xfde18dd8 =
&`mod_perl.so`modperl_mgv.c`modperl_hash_handlers_dir(),
srv_cb = 0xfde18f60 =
&`mod_perl.so`modperl_mgv.c`modperl_hash_handlers_srv()),
line 121 in "modperl_pcw.c"
[3] modperl_mgv_hash_handlers(p = 0x90818, s = 0xaa9f8),
line 522 in "modperl_mgv.c"
[4] modperl_hook_post_config_last(pconf = 0x90818, plog = 0xba8c0,
ptemp = 0xbc8c8, s = 0xaa9f8),
line 701 in "mod_perl.c"
[5] ap_run_post_config(0x90818, 0xba8c0, 0xbc8c8, 0xaa9f8, 0x14930e0, 0xa)
at 0x3597c
[6] main(0xffbef61b, 0xffbef5f4, 0xffbef464, 0xaa9f8, 0x90818, 0x8e890)
at 0x3d214
Linux version:
t@1 (l@1) terminated by signal BUS (invalid address alignment)
Current function is ap_pcw_walk_files_config
67 ap_conf_vector_t **dirs = (ap_conf_vector_t **)dconf->sec_file->elts;
=>[1] ap_pcw_walk_files_config(pconf = 0x90818, s = 0xaa9f8,
dconf = 0xab0e0, modp = 0xfdf59048, dir_cb = 0xfde18dd8 =
&`mod_perl.so`modperl_mgv.c`modperl_hash_handlers_dir(),
data = (nil)),
line 67 in "modperl_pcw.c"
[2] ap_pcw_walk_config(pconf = 0x90818, s = 0xaa9f8, modp = 0xfdf59048,
data = (nil), dir_cb = 0xfde18dd8 =
&`mod_perl.so`modperl_mgv.c`modperl_hash_handlers_dir(),
srv_cb = 0xfde18f60 =
&`mod_perl.so`modperl_mgv.c`modperl_hash_handlers_srv()),
line 121 in "modperl_pcw.c"
[3] modperl_mgv_hash_handlers(p = 0x90818, s = 0xaa9f8),
line 522 in "modperl_mgv.c"
[4] modperl_hook_post_config_last(pconf = 0x90818, plog = 0xba8c0,
ptemp = 0xbc8c8, s = 0xaa9f8),
line 701 in "mod_perl.c"
[5] ap_run_post_config(0x90818, 0xba8c0, 0xbc8c8, 0xaa9f8, 0x14930e0, 0xa)
at 0x3597c
[6] main(0xffbef61b, 0xffbef5f4, 0xffbef464, 0xaa9f8, 0x90818, 0x8e890)
at 0x3d214
This report was generated by t/REPORT on Thu Aug 18 18:01:14 2005 GMT.
Re: make test fails (Solaris and Linux, same problem)
Posted by "Philippe M. Chiasson" <go...@ectoplasm.org>.
Gordon Lack wrote:
> 1. Problem Description:
>
> The server core dumps when running make test.
>
> This happens on both Solaris and Linux systems (with the equivalent
> perl, Apache and mod_perl configurations).
>
> Having got the core dump info I added some printf statements to the
> start of ap_pcw_walk_files_config in modperl_pcw.c to print the values
> of dconf, dconf->sec_file and dconf->sec_file->elts.
>
> This showed:
>
> GML dconf: ab0e0
> GML dconf->sec_file: 2
>
> (and then a SIGSEGV trying to use this "2" as a point to get to
> dconf->sec_file->elts).
>
> This 2 looks decidely unpointer-like. Could Apache and mod_perl differ
> over what they think is in a core_dir_config struct and hence
> dconf->sec_file refer to a different offset?
This strange kind of segfaults is usually the syptoms of disagreements in
large-file support in httpd/apr/perl.
Detecting these kind of configuration problems has been discussed before, but
it's not quite as easy as it sounds ;-)
You can see one of the original discussions about this here:
http://marc.theaimsgroup.com/?t=111686169600002&r=1&w=2
And it's evolution into a solution here:
http://marc.theaimsgroup.com/?l=apache-modperl-dev&w=2&r=1&s=segfaulting+apache+in+ap_pcw_walk_files_&q=t
--------------------------------------------------------------------------------
Philippe M. Chiasson m/gozer\@(apache|cpan|ectoplasm)\.org/ GPG KeyID : 88C3A5A5
http://gozer.ectoplasm.org/ F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3A5A5