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

apache crashes when accessing this modperl script:

package Apache::hello;

use strict;

use Apache::RequestRec ();
use Apache::RequestIO ();
use Apache::Const -compile => 'OK';

sub handler {
  my $request = shift;  # what does shift operate on @_?
  $request->content_type('text/html');

  $request->print(<<END);
<HTML>
<BODY>
        <H1>Hello There</H1>
</BODY>
</HTML>
END

return Apache::OK;
}





2. Used Components and their Configuration:

*** using /usr/download/modperl/mod_perl-1.99_09/t/../lib/Apache/BuildConfig.pm
*** Makefile.PL options:
  MP_AP_PREFIX    => /usr/httpd20
  MP_COMPAT_1X    => 1
  MP_GENERATE_XS  => 1
  MP_INST_APACHE2 => 1
  MP_LIBNAME      => mod_perl
  MP_USE_DSO      => 1
  MP_USE_STATIC   => 1


*** /usr/httpd20/bin/httpd -V
Server version: Apache/2.0.46
Server built:   Jun  1 2003 19:52:02
Server's Module Magic Number: 20020903:3
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="/usr/httpd20"
 -D SUEXEC_BIN="/usr/httpd20/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.18-11smp, archname=i386-linux-thread-multi
    uname='linux daffy.perf.redhat.com 2.4.18-11smp #1 smp thu aug 15 06:41:59 edt 2002 i686 i686 i386 gnulinux '
    config_args='-des -Doptimize=-O2 -march=i386 -mcpu=i686 -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'
    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 -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
    optimize='-O2 -march=i386 -mcpu=i686',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -I/usr/include/gdbm'
    ccversion='', gccversion='3.2 20020822 (Red Hat Linux Rawhide 3.2-5)', 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 -lpthread -lc -lcrypt -lutil
    perllibs=-lnsl -ldl -lm -lpthread -lc -lcrypt -lutil
    libc=/lib/libc-2.2.92.so, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.2.92'
  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', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl): 
  Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
  Built under linux
  Compiled at Sep  1 2002 23:56:49
  %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
    .


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

Apache crashes but does not dump core. I set unlimit to unlimited,
made sure the filesystem from which 'httpd -X' is run has enough free space.
Still no core. Could not find Bad::Segv module either in modperl or in
CPAN and therefore could not try to dump using a script like core_dump.pl
mentioned in 'Debugging mod_perl C Internals' document.

I was able to run 'httpd -X' from inside gbd and got a stack trace:

(gdb) bt
#0  0x402f1f47 in modperl_wbucket_write ()
   from /usr/httpd20/modules/mod_perl.so
#1  0x40638701 in mpxs_Apache__RequestRec_print ()
   from /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi/auto/Apache/RequestIO/RequestIO.so
#2  0x406368c6 in XS_Apache__RequestRec_print ()
   from /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi/auto/Apache/RequestIO/RequestIO.so
#3  0x403868c5 in Perl_pp_entersub ()
   from /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so
#4  0x4037f059 in Perl_runops_standard ()
   from /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so
#5  0x40327139 in S_call_body ()
   from /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so
#6  0x40326eb6 in Perl_call_sv ()
   from /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so
#7  0x402ed4e2 in modperl_callback () from /usr/httpd20/modules/mod_perl.so
#8  0x402ed9e4 in modperl_callback_run_handlers ()
   from /usr/httpd20/modules/mod_perl.so
#9  0x402edc25 in modperl_callback_per_dir ()
   from /usr/httpd20/modules/mod_perl.so
#10 0x402e9105 in modperl_response_handler_run ()
   from /usr/httpd20/modules/mod_perl.so
#11 0x402e9325 in modperl_response_handler_cgi ()
   from /usr/httpd20/modules/mod_perl.so
#12 0x0807b67e in ap_run_handler (r=0x81a9268) at config.c:195
#13 0x0807bb96 in ap_invoke_handler (r=0x81a9268) at config.c:401
#14 0x0806baab in ap_process_request (r=0x81a9268) at http_request.c:288
#15 0x08067ce9 in ap_process_http_connection (c=0x816d458) at http_core.c:293
#16 0x08084476 in ap_run_process_connection (c=0x816d458) at connection.c:85
#17 0x0807a234 in child_main (child_num_arg=1080249231) at prefork.c:696
#18 0x0807a3de in make_child (s=0x80b6178, slot=0) at prefork.c:736
#19 0x0807a437 in startup_children (number_to_start=5) at prefork.c:808
#20 0x0807ab29 in ap_mpm_run (_pconf=0x8079b10, plog=0x80ebb50, s=0x80b6178)
    at prefork.c:1024
#21 0x0807f842 in main (argc=2, argv=0xbffffa74) at main.c:660
#22 0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6

This report was generated by ./REPORT on Mon Jun  2 03:02:20 2003 GMT.



