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:29:39 UTC

[Bug mp2] $bb->cleanup in protocol/echo_bbs2 dumps core

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

protocol/echo_bbs2 is failing with a core dump when calling $bb->cleanup

This patches does prevent the failure, but certainly doesn't seem to be
the right thing to be doing.

As far as a quick inspection can tell me, the bb is quite completely
foobar'ed

diff -u -I$Id -r1.2 echo_bbs2.pm
--- t/protocol/TestProtocol/echo_bbs2.pm        9 Jun 2004 14:46:22 -0000       1.2
+++ t/protocol/TestProtocol/echo_bbs2.pm        28 Jun 2004 19:25:50 -0000
@@ -37,7 +37,7 @@
          }

          next unless $bb_in->flatten(my $data);
-        $bb->cleanup;
+        #$bb->cleanup;
          #warn "read: [$data]\n";
          last if $data =~ /^[\r\n]+$/;



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  0x002dc26a in apr_brigade_cleanup (data=0x9492090) at apr_brigade.c:47
47      apr_brigade.c: No such file or directory.
         in apr_brigade.c
(gdb)bt
#0  0x002dc26a in apr_brigade_cleanup (data=0x9492090) at apr_brigade.c:47
#1  0x00369616 in XS_APR__Brigade_cleanup (my_perl=0x8ea7d40, cv=0x8d1c230) at Brigade.c:54
#2  0x03b0226d in Perl_pp_entersub () from /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/libperl.so
#3  0x03ae4bbd in Perl_runops_debug () from /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/libperl.so
#4  0x03a94809 in Perl_call_sv () from /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/libperl.so
#5  0x03a944d5 in Perl_call_sv () from /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/libperl.so
#6  0x0023ab2f in modperl_callback (my_perl=0x8ea7d40, handler=0x9487160, p=0x9486c50, r=0x0, s=0x8318530,
     args=0x947f4f0) at modperl_callback.c:99
#7  0x0023b08e in modperl_callback_run_handlers (idx=0, type=1, r=0x0, c=0x0, s=0x8318530, pconf=0x0, plog=0x1,
     ptemp=0x1, run_mode=MP_HOOK_RUN_FIRST) at modperl_callback.c:268
#8  0x0023b615 in modperl_callback_connection (idx=1, c=0x9492094, run_mode=MP_HOOK_RUN_FIRST)
     at modperl_callback.c:373
#9  0x002515d0 in modperl_process_connection_handler (c=0x1) at modperl_hooks.c:17
#10 0x08074892 in ap_run_process_connection (c=0x9486d60) at connection.c:42
#11 0x08074c81 in ap_process_connection (c=0x9486d60, csd=0x9486c88) at connection.c:175
#12 0x0806801f in child_main (child_num_arg=1) at prefork.c:609
#13 0x080681a9 in make_child (s=0x81a6e48, slot=1) at prefork.c:703
#14 0x0806821e in startup_children (number_to_start=1) at prefork.c:721
#15 0x08068627 in ap_mpm_run (_pconf=0x81a50a8, plog=0x81cf150, s=0x81a6e48) at prefork.c:940
#16 0x0806f22d in main (argc=9, argv=0xfeeff384) at main.c:617

(gdb) print b
$4 = (apr_bucket_brigade *) 0x9492090
(gdb) print e
$5 = (apr_bucket *) 0x1
(gdb) print *b
$6 = {p = 0x9490f40, list = {next = 0x1, prev = 0x1011007}, bucket_alloc = 0x9481150}
(gdb) print (*b)->list->prev
$7 = (struct apr_bucket *) 0x1011007
(gdb) print *((*b)->list->prev)
Cannot access memory at address 0x1011007

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

-------------8<---------- End Bug Report --------------8<----------

Note: Complete the rest of the details and post this bug report to
modperl <at> perl.apache.org. To subscribe to the list send an empty
email to modperl-subscribe@perl.apache.org.



-- 
--------------------------------------------------------------------------------
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] $bb->cleanup in protocol/echo_bbs2 dumps core

Posted by Stas Bekman <st...@stason.org>.
Joe Orton wrote:
> On Tue, Jun 29, 2004 at 04:52:31PM -0700, Stas Bekman wrote:
> 
>>Philippe M. Chiasson wrote:
>>
>>>-------------8<---------- Start Bug Report ------------8<----------
>>>1. Problem Description:
>>>
>>>protocol/echo_bbs2 is failing with a core dump when calling
>>>$bb->cleanup
>>>
>>>diff -u -I$Id -r1.2 echo_bbs2.pm
>>>--- t/protocol/TestProtocol/echo_bbs2.pm        9 Jun 2004 14:46:22 
>>>-0000       1.2
>>>+++ t/protocol/TestProtocol/echo_bbs2.pm        28 Jun 2004 19:25:50 -0000
>>>@@ -37,7 +37,7 @@
>>>        }
>>>
>>>        next unless $bb_in->flatten(my $data);
>>>-        $bb->cleanup;
>>>+        #$bb->cleanup;
>>>        #warn "read: [$data]\n";
>>>        last if $data =~ /^[\r\n]+$/;
>>
>>I think that has to do with the recent change in Apache. Joe, what's the 
>>end of the story with bb reuse? Have you decided that it's impossible to 
>>re-use bb? What's the point of $bb->cleanup then?
> 
> 
> I haven't committed any of the changes so they can't be breaking things
> yet :) I'll try and get some resolution on the issue soon...

Ah, OK. I'm now updating my Apache and I hope that I won't be able to 
reproduce it :)


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


Re: [Bug mp2] $bb->cleanup in protocol/echo_bbs2 dumps core

Posted by Joe Orton <jo...@redhat.com>.
On Tue, Jun 29, 2004 at 04:52:31PM -0700, Stas Bekman wrote:
> Philippe M. Chiasson wrote:
> >-------------8<---------- Start Bug Report ------------8<----------
> >1. Problem Description:
> >
> >protocol/echo_bbs2 is failing with a core dump when calling
> >$bb->cleanup
> >
> >diff -u -I$Id -r1.2 echo_bbs2.pm
> >--- t/protocol/TestProtocol/echo_bbs2.pm        9 Jun 2004 14:46:22 
> >-0000       1.2
> >+++ t/protocol/TestProtocol/echo_bbs2.pm        28 Jun 2004 19:25:50 -0000
> >@@ -37,7 +37,7 @@
> >         }
> >
> >         next unless $bb_in->flatten(my $data);
> >-        $bb->cleanup;
> >+        #$bb->cleanup;
> >         #warn "read: [$data]\n";
> >         last if $data =~ /^[\r\n]+$/;
> 
> I think that has to do with the recent change in Apache. Joe, what's the 
> end of the story with bb reuse? Have you decided that it's impossible to 
> re-use bb? What's the point of $bb->cleanup then?

I haven't committed any of the changes so they can't be breaking things
yet :) I'll try and get some resolution on the issue soon...

joe

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


Re: [Bug mp2] $bb->cleanup in protocol/echo_bbs2 dumps core

Posted by Stas Bekman <st...@stason.org>.
Philippe M. Chiasson wrote:
> -------------8<---------- Start Bug Report ------------8<----------
> 1. Problem Description:
> 
> protocol/echo_bbs2 is failing with a core dump when calling $bb->cleanup
> 
> This patches does prevent the failure, but certainly doesn't seem to be
> the right thing to be doing.
> 
> As far as a quick inspection can tell me, the bb is quite completely
> foobar'ed
> 
> diff -u -I$Id -r1.2 echo_bbs2.pm
> --- t/protocol/TestProtocol/echo_bbs2.pm        9 Jun 2004 14:46:22 
> -0000       1.2
> +++ t/protocol/TestProtocol/echo_bbs2.pm        28 Jun 2004 19:25:50 -0000
> @@ -37,7 +37,7 @@
>          }
> 
>          next unless $bb_in->flatten(my $data);
> -        $bb->cleanup;
> +        #$bb->cleanup;
>          #warn "read: [$data]\n";
>          last if $data =~ /^[\r\n]+$/;

I think that has to do with the recent change in Apache. Joe, what's the end 
of the story with bb reuse? Have you decided that it's impossible to re-use 
bb? What's the point of $bb->cleanup then?

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