Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: ModPerl: Dev

[mp2] server coredump when using output filter with ModPerl::Registry

 

 

ModPerl dev RSS feed   Index | Next | Previous | View Threaded


e at skwayr

Oct 28, 2003, 1:01 AM

Post #1 of 2 (815 views)
Permalink
[mp2] server coredump when using output filter with ModPerl::Registry

Hi list,

1. Problem Description:

I'm getting a variety of segfault conditions when I try to use an
output filter in conjunction with a ModPerl::Registry script. This is
highly repeatable; a freshly started httpd will segfault 3 times out
of 4.

If I turn off the output filter, the script runs just fine. If I run
the script under mod_cgi with the output filter enabled, it runs just
fine. Just fine = thousands of requests.

Also, if I use httpd -X, there are no segfaults with both
ModPerl::Registry and the output filter enabled. I have been unable
to get the server to generate a core file so far.

My error log contains entries as follows. These errors seem to occur
for each Apache prefork'd child except the initial process, and they
seem to appear at random, although the segfault errors appear 10-15
times as often as the others:

[Sun Oct 26 17:07:41 2003] [error] [client 192.168.1.1] Error reading '/web/htdocs/gallery.cgi': 9:Bad file descriptor at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/ModPerl/RegistryCooker.pm line 528.
[Sun Oct 26 17:09:11 2003] [error] [client 192.168.1.1] Error: read 1 bytes, expected 6333 ('/web/htdocs/gallery.cgi') at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/ModPerl/RegistryCooker.pm line 528.
[Sun Oct 26 17:15:32 2003] [error] [client 192.168.1.1] Error: read 1 bytes, expected 6333 ('/web/htdocs/gallery.cgi') at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/ModPerl/RegistryCooker.pm line 528.
[Sun Oct 26 17:15:44 2003] [notice] child pid 26289 exit signal Segmentation fault (11)
[Sun Oct 26 17:16:07 2003] [notice] child pid 26290 exit signal Segmentation fault (11)
[Sun Oct 26 17:16:13 2003] [notice] child pid 26287 exit signal Segmentation fault (11)

My output filter uses Template Toolkit, and makes a connection to a
MySQL database, but is otherwise nothing special. It uses a handler
based very closely on the example in the mp2 docs (thanks Stas!).

2. Used Components and their Configuration:

RedHat Linux 9, kernel 2.4.20-20.9 on a Celeron 300A box with 256megs
of RAM, 512megs of swap (don't cringe), manually-built Apache and
modperl, as follows.

*** mod_perl version 1.9910

*** using lib/Apache/BuildConfig.pm
*** Makefile.PL options:
MP_AP_PREFIX => /web/httpd
MP_COMPAT_1X => 1
MP_GENERATE_XS => 1
MP_INST_APACHE2 => 1
MP_LIBNAME => mod_perl
MP_USE_DSO => 1
MP_USE_STATIC => 1


*** /web/httpd/bin/httpd -V
Server version: Apache/2.0.47
Server built: Sep 21 2003 01:41:05
Server's Module Magic Number: 20020903:4
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_PROC_PTHREAD_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="/web/httpd"
-D SUEXEC_BIN="/web/httpd/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 0) configuration:
Platform:
osname=linux, osvers=2.4.21-1.1931.2.382.entsmp, archname=i386-linux-thread-multi
uname='linux str'
config_args='-des -Doptimize=-O2 -g -pipe -march=i386 -mcpu=i686 -Dmyhostname=localhost -Dperladmin=root [at] localhos -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux -Dvendorprefix=/usr -Dsiteprefix=/usr -Dotherlibdirs=/usr/lib/perl5/5.8.0 -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'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef'
useithreads=define usemultiplicity=
useperlio= d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=un uselongdouble=
usemymalloc=, 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='',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm'
ccversion='', gccversion='3.2.2 20030222 (Red Hat Linux 3.2.2-5)', gccosandvers=''
gccversion='3.2.2 200302'
intsize=r, longsize=r, ptrsize=5, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long'
k', ivsize=4'
ivtype='l, nvtype='double'
o_nonbl', nvsize=, Off_t='', lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='gcc'
l', ldflags =' -L/u'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -lgdbm -ldb -ldl -lm -lpthread -lc -lcrypt -lutil
perllibs=
libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libper
gnulibc_version='2.3.2'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so', d_dlsymun=undef, ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE'
cccdlflags='-fPIC'
ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5', lddlflags='s Unicode/Normalize XS/A'


Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
Locally applied patches:
MAINT18379
Built under linux
Compiled at Aug 13 2003 11:47:58
%ENV:
PERL_LWP_USE_HTTP_10="1"
@INC:
/usr/lib/perl5/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/5.8.0
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.0
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.0
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/5.8.0
.


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

I have been unable to get a core dump.

This report was generated by t/REPORT on Tue Oct 28 07:39:21 2003 GMT.


--
// 2 _____________________________________________________________
// / \
\\/ / | "I think not," said Descartes, and promptly disappeared. |
\\/ \_________________________________ __________________________/
Ewan Edwards {e^2}, e [at] skwayr |/

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe [at] perl
For additional commands, e-mail: dev-help [at] perl


stas at stason

Oct 28, 2003, 11:40 PM

Post #2 of 2 (816 views)
Permalink
Re: [mp2] server coredump when using output filter with ModPerl::Registry [In reply to]

Ewan Edwards wrote:
[...]
> I have been unable to get a core dump.

Evan, have you read:
http://perl.apache.org/docs/2.0/devel/debug/c.html#Getting_the_core_File_Dumped

We need the core stack and the code we can reproduce the problem with. Please
reduce your code to the very minimal one that you still get the segfault with
and send us the filter, the script and the relevant parts of the config.

Thank you.

__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:stas [at] stason http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe [at] perl
For additional commands, e-mail: dev-help [at] perl

ModPerl dev RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.