Hi,
Apache process is segfaulting when I use mod_perl.
It seems to occure when a process send more than 32kB of data in the
RequestRec::print method (not really sure of the 32k limit).
Anybody with the same problem ?
Full bug report with core trace below.
Thanks !
Laurent.
-------------8<---------- Start Bug Report ------------8<----------
1. Problem Description:
Apache segfault when using mod_perl.
Seems to occures when a process send more than 32kB of data.
2. Used Components and their Configuration:
*** mod_perl version 2.000005
*** using /tmp/libapache2-mod-perl2-2.0.5/lib/Apache2/BuildConfig.pm
*** Makefile.PL options:
MP_APR_LIB => aprext
MP_APXS => /usr/bin/apxs2
MP_CCOPTS => -g -O2 -Wall
MP_COMPAT_1X => 1
MP_DEBUG => 1
MP_GENERATE_XS => 1
MP_INCLUDE_DIR => /usr/include/apache2 /usr/include/apr-1.0
MP_LIBNAME => mod_perl
MP_TRACE => 1
MP_USE_DSO => 1
MP_USE_GTOP => 1
MP_USE_STATIC => 0
*** /usr/sbin/apache2 -V
Server version: Apache/2.2.20 (Ubuntu)
Server built: Nov 7 2011 22:45:46
Server's Module Magic Number: 20051115:28
Server loaded: APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
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 DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"
*** /usr/bin/ldd /usr/sbin/apache2
linux-vdso.so.1 => (0x00007fff1c1ff000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f41bb502000)
libaprutil-1.so.0 => /usr/lib/libaprutil-1.so.0 (0x00007f41bb2df000)
libapr-1.so.0 => /usr/lib/libapr-1.so.0 (0x00007f41bb0a5000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007f41bae88000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f41baae9000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f41ba8af000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f41ba685000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f41ba480000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f41ba27b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f41bb9dd000)
*** (apr|apu)-config linking info
-L/usr/lib -laprutil-1
-L/usr/lib -lapr-1
*** /usr/bin/perl -V
Summary of my perl5 (revision 5 version 12 subversion 4) configuration:
Platform:
osname=linux, osvers=2.6.24-28-server,
archname=x86_64-linux-gnu-thread-multi
uname='linux allspice 2.6.24-28-server #1 smp wed aug 18 21:17:51
utc 2010 x86_64 x86_64 x86_64 gnulinux '
config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN
-Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr
-Dprivlib=/usr/share/perl/5.12 -Darchlib=/usr/lib/perl/5.12
-Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5
-Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local
-Dsitelib=/usr/local/share/perl/5.12.4
-Dsitearch=/usr/local/lib/perl/5.12.4 -Dman1dir=/usr/share/man/man1
-Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1
-Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1
-Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm
-Uusesfio -Uusenm -Ui_libutil -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib
-Dlibperl=libperl.so.5.12.4 -des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN
-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -g',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing
-pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.6.1', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/x86_64-linux-gnu /lib/../lib
/usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /usr/lib
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=, so=so, useshrplib=true, libperl=libperl.so.5.12.4
gnulibc_version='2.13'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib
-fstack-protector'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
USE_64_BIT_ALL
USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API
Locally applied patches:
DEBPKG:debian/arm_thread_stress_timeout -
http://bugs.debian.org/501970 Raise the timeout of
ext/threads/shared/t/stress.t to accommodate
DEBPKG:debian/cpan_config_path - Set location of CPAN::Config to
/etc/perl as /usr may not be
DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS
default for modules installed from
DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove
overly restrictive DB_File version check.
DEBPKG:debian/doc_info - Replace generic man(1) instructions with
Debian-specific
DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak enc2xs
to follow symlinks and ignore missing @INC directories.
DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove Errno
version check due to upgrade problems with long-running
DEBPKG:debian/libperl_embed_doc - http://bugs.debian.org/186778 Note
that libperl-dev package is required for embedded linking
DEBPKG:fixes/respect_umask - Respect umask during installation
DEBPKG:debian/writable_site_dirs - Set umask approproately for site
install directories
DEBPKG:debian/extutils_set_libperl_path - EU:MM: Set location of
libperl.a to /usr/lib
DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or
perllocal.pod for perl or vendor
DEBPKG:debian/prefix_changes - Fiddle with *PREFIX and variables
written to the makefile
DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the
binary targets.
DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist
files for core or vendor.
DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as
per Debian policy.
DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to
/etc/perl/Net as /usr may not be
DEBPKG:debian/m68k_thread_stress - http://bugs.debian.org/517938
http://bugs.debian.org/495826 Disable some threads tests on m68k for now
due to missing TLS.
DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
DEBPKG:debian/module_build_man_extensions -
http://bugs.debian.org/479460 Adjust Module::Build manual page
extensions for the Debian Perl
DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the
list of libraries wanted to what we actually need.
DEBPKG:fixes/net_smtp_docs - [rt.cpan.org #36038]
http://bugs.debian.org/100195 Document the Net::SMTP 'Port' option
DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp
skip include directories in /usr/local
DEBPKG:debian/disable-zlib-bundling - Disable zlib bundling in
Compress::Raw::Zlib
DEBPKG:debian/cpanplus_definstalldirs - http://bugs.debian.org/533707
Configure CPANPLUS to use the site directories by default.
DEBPKG:debian/cpanplus_config_path - Save local versions of
CPANPLUS::Config::System into /etc/perl.
DEBPKG:fixes/autodie-flock - http://bugs.debian.org/543731 Allow for
flock returning EAGAIN instead of EWOULDBLOCK on
DEBPKG:fixes/cpanplus-without-home - http://bugs.debian.org/577011
[rt.cpan.org #52988] Fix CPANPLUS test failures when HOME doesn't exist
DEBPKG:debian/deprecate-with-apt - http://bugs.debian.org/580034
Point users to Debian packages of deprecated core modules
DEBPKG:fixes/hurd-ccflags - [a190e64] http://bugs.debian.org/587901
[perl #92244] Make hints/gnu.sh append to $ccflags rather than
overriding them
DEBPKG:debian/squelch-locale-warnings - http://bugs.debian.org/508764
Squelch locale warnings in Debian package maintainer scripts
DEBPKG:fixes/lc-numeric-docs - [903eb63] [perl #78452]
http://bugs.debian.org/379329 LC_NUMERIC documentation fixes
DEBPKG:fixes/lc-numeric-sprintf - [b3fd614] [perl #78632]
http://bugs.debian.org/601549 Fix sprintf not to ignore LC_NUMERIC with
constants
DEBPKG:fixes/concat-stack-corruption - [e3393f5] [perl #78674]
http://bugs.debian.org/596105 Fix stack pointer corruption in
pp_concat() with 'use encoding'
DEBPKG:fixes/h2ph-gcc-4.5 - [8d66b3f] http://bugs.debian.org/599933
h2ph fix for gcc 4.5
DEBPKG:fixes/module-build-home-directory -
http://bugs.debian.org/624850 [rt.cpan.org #67893] Fix failing tilde
test when run under a UID without a passwd entry
DEBPKG:debian/patchlevel - http://bugs.debian.org/567489 List
packaged patches for 5.12.4-4 in patchlevel.h
DEBPKG:fixes/h2ph-multiarch - [e7ec705] http://bugs.debian.org/625808
[perl #90122] Make h2ph correctly search gcc include directories
DEBPKG:fixes/odbm-multiarch - [3c998e0] http://bugs.debian.org/625634
[perl #90106] Fix ODBM_File failures on Ubuntu natty [multiarch]
DEBPKG:fixes/re.t_sh4_timeout - [7c47ab2] [perl #92226]
http://bugs.debian.org/626125 Update lengthen time-out time for t/re/re.t.
DEBPKG:fixes/index-tainting - [3b36395] http://bugs.debian.org/291450
[perl #64804] RT 64804: tainting with index() of a constant
DEBPKG:fixes/document_makemaker_ccflags -
http://bugs.debian.org/628522 [rt.cpan.org #68613] Document that CCFLAGS
should include $Config{ccflags}
DEBPKG:fixes/sys-syslog-socket-timeout-kfreebsd.patch -
http://bugs.debian.org/627821 [rt.cpan.org #69997] Use a socket timeout
on GNU/kFreeBSD to catch ICMP port unreachable
DEBPKG:fixes/hurd-hints - http://bugs.debian.org/636609 Improve
general GNU hints, needed for GNU/Hurd.
DEBPKG:fixes/encode-heap-overflow - [e46d973]
http://bugs.debian.org/637376 Fix decode_xs n-byte heap-overflow
security bug in Unicode.xs
Built under linux
Compiled at Sep 6 2011 08:09:36
%ENV:
PERL_LWP_USE_HTTP_10="1"
@INC:
/etc/perl
/usr/local/lib/perl/5.12.4
/usr/local/share/perl/5.12.4
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.12
/usr/share/perl/5.12
/usr/local/lib/site_perl
.
*** Packages of interest status:
Apache2 : -
Apache2::Request : 2.13
CGI : 3.49
ExtUtils::MakeMaker: 6.56
LWP : 6.02
mod_perl : -
mod_perl2 : 2.000005
3. This is the core dump trace: (if you get a core dump):
#0 0x00007f92c67bf538 in ?? () from
/usr/lib/perl5/auto/Apache2/RequestIO/RequestIO.so
#1 0x00007f92c67bf860 in XS_Apache2__RequestRec_print () from
/usr/lib/perl5/auto/Apache2/RequestIO/RequestIO.so
#2 0x00007f92cff3246d in Perl_pp_entersub () from /usr/lib/libperl.so.5.12
#3 0x00007f92cff29c10 in Perl_runops_standard () from
/usr/lib/libperl.so.5.12
#4 0x00007f92cfecdcc3 in Perl_call_sv () from /usr/lib/libperl.so.5.12
#5 0x00007f92d0210d51 in modperl_callback () from
/usr/lib/apache2/modules/mod_perl.so
#6 0x00007f92d0211904 in modperl_callback_run_handlers () from
/usr/lib/apache2/modules/mod_perl.so
#7 0x00007f92d02120af in modperl_callback_per_dir () from
/usr/lib/apache2/modules/mod_perl.so
#8 0x00007f92d020a8cb in ?? () from /usr/lib/apache2/modules/mod_perl.so
#9 0x00007f92d020abe1 in modperl_response_handler () from
/usr/lib/apache2/modules/mod_perl.so
#10 0x00007f92d5d362d8 in ap_run_handler (r=0x7f92d41eb0a0) at
/build/buildd/apache2-2.2.20/server/config.c:159
#11 0x00007f92d5d3674e in ap_invoke_handler (r=0x7f92d41eb0a0) at
/build/buildd/apache2-2.2.20/server/config.c:377
#12 0x00007f92d5d462c0 in ap_process_request (r=0x7f92d41eb0a0) at
/build/buildd/apache2-2.2.20/modules/http/http_request.c:282
#13 0x00007f92d5d43138 in ap_process_http_connection (c=0x7f92d41f3290)
at /build/buildd/apache2-2.2.20/modules/http/http_core.c:190
#14 0x00007f92d5d3cd78 in ap_run_process_connection (c=0x7f92d41f3290)
at /build/buildd/apache2-2.2.20/server/connection.c:43
#15 0x00007f92d5d4aec0 in child_main (child_num_arg=<optimized out>) at
/build/buildd/apache2-2.2.20/server/mpm/prefork/prefork.c:667
#16 0x00007f92d5d4b62a in make_child (slot=3, s=0x7f92d5ce27f8) at
/build/buildd/apache2-2.2.20/server/mpm/prefork/prefork.c:768
#17 make_child (s=0x7f92d5ce27f8, slot=3) at
/build/buildd/apache2-2.2.20/server/mpm/prefork/prefork.c:696
#18 0x00007f92d5d4b6e7 in startup_children (number_to_start=2) at
/build/buildd/apache2-2.2.20/server/mpm/prefork/prefork.c:786
#19 0x00007f92d5d4c064 in ap_mpm_run (_pconf=<optimized out>,
plog=<optimized out>, s=<optimized out>)
at /build/buildd/apache2-2.2.20/server/mpm/prefork/prefork.c:1007
#20 0x00007f92d5d213ca in main (argc=3, argv=0x7fff4ac7fc28) at
/build/buildd/apache2-2.2.20/server/main.c:741
This report was generated by /usr/share/libapache2-mod-perl2/mp2bug on
Tue Nov 15 09:48:54 2011 GMT.
-------------8<---------- End Bug Report --------------8<----------