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

Reply via email to