You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by "Philippe M. Chiasson" <go...@ectoplasm.org> on 2004/06/28 21:41:14 UTC

[bug mp2] apache/subprocess segfaults in socket_cleanup

-------------8<---------- Start Bug Report ------------8<----------
1. Problem Description:

apache/subprocess tests are all dumping core for me

The backtrace seems to indicate that something wrong is going on in socket_cleanup.
Not sure what is going on at this point though.

2. Used Components and their Configuration:

*** mod_perl version 1.9915

*** using lib/Apache/BuildConfig.pm
*** Makefile.PL options:
   MP_APR_CONFIG  => /home/gozer/opt/httpd/i386-linux/2.0.50-dev/prefork/bin/apr-config
   MP_APXS        => /home/gozer/opt/httpd/i386-linux/2.0.50-dev/prefork/bin/apxs
   MP_CCOPTS      => -g3 -gdwarf-2 -Wall -Werror
   MP_COMPAT_1X   => 1
   MP_DEBUG       => 1
   MP_GENERATE_XS => 1
   MP_LIBNAME     => mod_perl
   MP_MAINTAINER  => 1
   MP_TRACE       => 1
   MP_USE_DSO     => 1
   MP_USE_GTOP    => 1
   MP_USE_STATIC  => 1


*** /home/gozer/opt/httpd/i386-linux/2.0.50-dev/prefork/bin/httpd -V
Server version: Apache/2.0.50-dev
Server built:   Jun 28 2004 11:22:23
Server's Module Magic Number: 20020903:8
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="/home/gozer/opt/httpd/i386-linux/2.0.50-dev/prefork"
  -D SUEXEC_BIN="/home/gozer/opt/httpd/i386-linux/2.0.50-dev/prefork/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"


*** /usr/bin/perl -V
Summary of my perl5 (revision 5.0 version 8 subversion 3) configuration:
   Platform:
     osname=linux, osvers=2.4.21-4.elsmp, archname=i386-linux-thread-multi
     uname='linux tweety.devel.redhat.com 2.4.21-4.elsmp #1 smp fri oct 3 17:52:56 edt 2003 i686 i686 i386 gnulinux '
     config_args='-des -Doptimize=-O2 -g -pipe -march=i386 -mcpu=i686 -Dversion=5.8.3 -Dmyhostname=localhost -Dperladmin=root@localhost -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.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 -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
     optimize='-O2 -g -pipe -march=i386 -mcpu=i686',
     cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm'
     ccversion='', gccversion='3.3.3 20040412 (Red Hat Linux 3.3.3-7)', 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.3.so, so=so, useshrplib=true, libperl=libperl.so
     gnulibc_version='2.3.3'
   Dynamic Linking:
     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.8.3/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 Apr 15 2004 13:09:17
   %ENV:
     PERL5LIB="/home/gozer/opt/lib/perl5:/home/gozer/opt/lib/perl5/site_perl:/home/gozer/opt/perl_lib/lib"
     PERL5_CPANPLUS_CONFIG="/home/gozer/.cpanplus/config"
     PERL_LWP_USE_HTTP_10="1"
   @INC:
     /home/gozer/opt/lib/perl5/5.8.3/i386-linux-thread-multi
     /home/gozer/opt/lib/perl5/5.8.3
     /home/gozer/opt/lib/perl5/i386-linux-thread-multi
     /home/gozer/opt/lib/perl5/5.8.2
     /home/gozer/opt/lib/perl5/5.8.1
     /home/gozer/opt/lib/perl5/5.8.0
     /home/gozer/opt/lib/perl5
     /home/gozer/opt/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi
     /home/gozer/opt/lib/perl5/site_perl/5.8.3
     /home/gozer/opt/lib/perl5/site_perl/i386-linux-thread-multi
     /home/gozer/opt/lib/perl5/site_perl/5.8.2
     /home/gozer/opt/lib/perl5/site_perl/5.8.1
     /home/gozer/opt/lib/perl5/site_perl/5.8.0
     /home/gozer/opt/lib/perl5/site_perl
     /home/gozer/opt/perl_lib/lib/5.8.3/i386-linux-thread-multi
     /home/gozer/opt/perl_lib/lib/5.8.3
     /home/gozer/opt/perl_lib/lib/i386-linux-thread-multi
     /home/gozer/opt/perl_lib/lib/5.8.2
     /home/gozer/opt/perl_lib/lib/5.8.1
     /home/gozer/opt/perl_lib/lib/5.8.0
     /home/gozer/opt/perl_lib/lib
     /usr/lib/perl5/5.8.3/i386-linux-thread-multi
     /usr/lib/perl5/5.8.3
     /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.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.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.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:

Apache::Request: -
CGI            : 3.01
LWP            : 5.79
mod_perl       : -


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

#0  0x00000000 in ?? ()
#1  0x00fd2609 in run_child_cleanups (cref=0xa8b70f0) at apr_pools.c:1962
#2  0x00fd262d in cleanup_pool_for_exec (p=0xa8b70e0) at apr_pools.c:1969
#3  0x00fd264c in cleanup_pool_for_exec (p=0xa8b70e0) at apr_pools.c:1972
#4  0x00fd264c in cleanup_pool_for_exec (p=0xa8b50d8) at apr_pools.c:1972
#5  0x00fd264c in cleanup_pool_for_exec (p=0x95d50a8) at apr_pools.c:1972
#6  0x00fd264c in cleanup_pool_for_exec (p=0x95d30a0) at apr_pools.c:1972
#7  0x00fd267d in apr_pool_cleanup_for_exec () at apr_pools.c:1987
#8  0x00fcb094 in apr_proc_create (new=0xa8c9680, progname=0xa8dba30 "/usr/bin/perl", args=0xa8c9198, env=0xa8c91b0,
     attr=0xa8c93b0, pool=0xa8bd0f8) at proc.c:347
#9  0x080883eb in ap_os_create_privileged_process (r=0xa8bd130, newproc=0xa8c9680, progname=0xa8dba30 "/usr/bin/perl",
     args=0xa8c9198, env=0xa8c91b0, attr=0xa8c93b0, p=0xa8bd0f8) at unixd.c:374
#10 0x00d89e34 in modperl_spawn_proc_prog (my_perl=0xa2d7d40, r=0xa8bd130, command=0x0, argv=0x0,
     script_in=0xfeea9100, script_out=0xfeea9104, script_err=0xfeea9108) at Apache__SubProcess.h:83
#11 0x00d8a173 in MPXS_modperl_spawn_proc_prog (my_perl=0xa2d7d40, cv=0x0) at Apache__SubProcess.h:174
#12 0x03b0226d in Perl_pp_entersub () from /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/libperl.so
#13 0x03ae4bbd in Perl_runops_debug () from /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/libperl.so
#14 0x03a94809 in Perl_call_sv () from /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/libperl.so
#15 0x03a944d5 in Perl_call_sv () from /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/libperl.so
#16 0x00125b2f in modperl_callback (my_perl=0xa2d7d40, handler=0xa8c8f80, p=0xa8bd0f8, r=0xa8bd130, s=0x95d6e48,
     args=0xa8af640) at modperl_callback.c:99
#17 0x0012608e in modperl_callback_run_handlers (idx=6, type=4, r=0xa8bd130, c=0x0, s=0x95d6e48, pconf=0x0, plog=0x0,
     ptemp=0x0, run_mode=MP_HOOK_RUN_FIRST) at modperl_callback.c:268
#18 0x00126555 in modperl_callback_per_dir (idx=0, r=0xa8b75a0, run_mode=MP_HOOK_RUN_ALL) at modperl_callback.c:356
#19 0x0011fa9e in modperl_response_handler_run (r=0xa8bd130, finish=1) at mod_perl.c:880
#20 0x0011fb93 in modperl_response_handler (r=0xa8bd130) at mod_perl.c:920
#21 0x08069782 in ap_run_handler (r=0xa8bd130) at config.c:151
#22 0x08069ef0 in ap_invoke_handler (r=0xa8bd130) at config.c:358
#23 0x0806676a in ap_process_request (r=0xa8bd130) at http_request.c:246
#24 0x08060d4b in ap_process_http_connection (c=0xa8b71f0) at http_core.c:250
#25 0x08074892 in ap_run_process_connection (c=0xa8b71f0) at connection.c:42
#26 0x08074c81 in ap_process_connection (c=0xa8b71f0, csd=0xa8b7118) at connection.c:175
#27 0x0806801f in child_main (child_num_arg=1) at prefork.c:609
#28 0x080681a9 in make_child (s=0x95d6e48, slot=1) at prefork.c:703
#29 0x0806821e in startup_children (number_to_start=1) at prefork.c:721
#30 0x08068627 in ap_mpm_run (_pconf=0x95d50a8, plog=0x95ff150, s=0x95d6e48) at prefork.c:940
#31 0x0806f22d in main (argc=9, argv=0xfeea9784) at main.c:617
(gdb) up
#1  0x00fd2609 in run_child_cleanups (cref=0xa8b70f0) at apr_pools.c:1962
(gdb) print *cref
$1 = (cleanup_t *) 0xa8b71e0
(gdb) print **cref
$2 = {next = 0x0, data = 0xa8b7118, plain_cleanup_fn = 0xfc9180 <socket_cleanup>,
   child_cleanup_fn = 0xfc9180 <socket_cleanup>}

This report was generated by bin/mp2bug on Mon Jun 28 19:30:17 2004 GMT.

-- 
--------------------------------------------------------------------------------
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

Re: [bug mp2] apache/subprocess segfaults in socket_cleanup

Posted by Stas Bekman <st...@stason.org>.
Philippe M. Chiasson wrote:
> -------------8<---------- Start Bug Report ------------8<----------
> 1. Problem Description:
> 
> apache/subprocess tests are all dumping core for me
> 
> The backtrace seems to indicate that something wrong is going on in 
> socket_cleanup.
> Not sure what is going on at this point though.

Doh! Most likely all the recent changes in 2.0.50, I didn't keep up with :( I 
don't want to update my build now, so that I can test 5.8.5 in a few days.

[...]
> #0  0x00000000 in ?? ()
> #1  0x00fd2609 in run_child_cleanups (cref=0xa8b70f0) at apr_pools.c:1962
> #2  0x00fd262d in cleanup_pool_for_exec (p=0xa8b70e0) at apr_pools.c:1969
> #3  0x00fd264c in cleanup_pool_for_exec (p=0xa8b70e0) at apr_pools.c:1972
> #4  0x00fd264c in cleanup_pool_for_exec (p=0xa8b50d8) at apr_pools.c:1972
> #5  0x00fd264c in cleanup_pool_for_exec (p=0x95d50a8) at apr_pools.c:1972
> #6  0x00fd264c in cleanup_pool_for_exec (p=0x95d30a0) at apr_pools.c:1972
> #7  0x00fd267d in apr_pool_cleanup_for_exec () at apr_pools.c:1987
> #8  0x00fcb094 in apr_proc_create (new=0xa8c9680, progname=0xa8dba30 
> "/usr/bin/perl", args=0xa8c9198, env=0xa8c91b0,
>     attr=0xa8c93b0, pool=0xa8bd0f8) at proc.c:347
> #9  0x080883eb in ap_os_create_privileged_process (r=0xa8bd130, 
> newproc=0xa8c9680, progname=0xa8dba30 "/usr/bin/perl",
>     args=0xa8c9198, env=0xa8c91b0, attr=0xa8c93b0, p=0xa8bd0f8) at 
> unixd.c:374
> #10 0x00d89e34 in modperl_spawn_proc_prog (my_perl=0xa2d7d40, 
> r=0xa8bd130, command=0x0, argv=0x0,
>     script_in=0xfeea9100, script_out=0xfeea9104, script_err=0xfeea9108) 
> at Apache__SubProcess.h:83
> #11 0x00d8a173 in MPXS_modperl_spawn_proc_prog (my_perl=0xa2d7d40, 
> cv=0x0) at Apache__SubProcess.h:174

Shouldn't cv be a non-NULL here?

-- 
__________________________________________________________________
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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org