At 10:49 PM 8/10/00 +0200, you wrote:
>On Thu, Aug 10, 2000 at 07:39:24AM -0500, George Sanderson wrote:
>> At 12:22 PM 8/10/00 +0200, you wrote:
>> >
>> >with almost the same conf as your, I had a core dump even with httpd
>> >-t. I did a strace, and I noticed this is due to an inexistant module :
>> >Tie::*hash or something similar. A quick search on CPAN give me the
>> >package to install. After that, no more segfault ...
>> >
>> I did a strace and the last entries were:
>> 
>> munmap(0x2ae2c000, 9736)                = 0
>> --- SIGSEGV (Segmentation fault) ---
>> +++ killed by SIGSEGV +++
>> 
>> Could this be a lack of memory?
>
>dunno...
>if you haven't answer on the list, perhaps a more verbose strace trace
>could help...
>
>
>Good luck,

Thanks (I'd rather be lucky than good!-)
Recap:
I have Apache 1.3.12 using mod_perl 1.24 as a DSO, built with Perl 5.6.0
using Apache::AutoIndex 0.08 which is running on Linux 2.2.14. 
Everything works fine, until, I `apachectl stop`, then add the following to
the httpd.conf:
PerlModule Apache::AutoIndex
When I do `bin/httpd -X` Linux does a core dump.

I added more memory the computer but the program still crashes at the same
point.

Here's more of a more verbose strace ouput during the core dump. 
Any clues?
========================================
open("/usr/local/apache/logs/error_log.test", O_WRONLY|O_APPEND|O_CREAT,
0666) = 4
fcntl(4, F_DUPFD, 15)                   = 15
close(4)                                = 0
fcntl(15, F_GETFL)                      = 0x401 (flags O_WRONLY|O_APPEND)
fstat(15, {st_mode=S_IFREG|0644, st_size=13212, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aac0000
_llseek(15, 0, [0], SEEK_CUR)           = 0
dup2(15, 2)                             = 2
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
open("/usr/local/apache/conf/apache-mime.types", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=7374, ...}) = 0
fstat(4, {st_mode=S_IFREG|0644, st_size=7374, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aac8000
read(4, "# This is the default mime.types"..., 4096) = 4096
read(4, "m.EXT\napplication/vnd.osa.netdep"..., 4096) = 3278
brk(0x8480000)                          = 0x8480000
read(4, "", 4096)                       = 0
close(4)                                = 0
munmap(0x2aac8000, 4096)                = 0
open("/usr/local/apache/logs/access_log.test", O_WRONLY|O_APPEND|O_CREAT,
0644) = 4
fcntl(4, F_DUPFD, 15)                   = 16
close(4)                                = 0
getpid()                                = 1404
time(NULL)                              = 965956118
close(16)                               = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
munmap(0x2ad9d000, 14288)               = 0
munmap(0x2ae0a000, 16308)               = 0
munmap(0x2ae0e000, 13712)               = 0
munmap(0x2ae12000, 22668)               = 0
munmap(0x2ada1000, 9064)                = 0
munmap(0x2ae18000, 46408)               = 0
munmap(0x2ae24000, 29000)               = 0
munmap(0x2ae2c000, 9736)                = 0
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++
[========================================
I also did a PERL_TRACE of mod_perl.  The end of which was:
========================================
  5:           _compile();
   entering CGI::_compile
    665:            my($func) = $AUTOLOAD;

    666:            my($pack,$func_name);
    667:            {
    668:                local($1,$2); # this fixes an obscure variable
suicide problem.
    668:                local($1,$2); # this fixes an obscure variable
suicide problem.
    669:                $func=~/(.+)::([^:]+)$/;
    670:                ($pack,$func_name) = ($1,$2);
    671:                $pack=~s/::SUPER$//;    # fix another obscure problem
    673:                    unless defined(${"$pack\:\:AUTOLOADED_ROUTINES"});
    672:                $pack = ${"$pack\:\:AutoloadClass"} ||
$CGI::DefaultClass
    675:                my($sub) = \%{"$pack\:\:SUBS"};
    675:                my($sub) = \%{"$pack\:\:SUBS"};
    676:                unless (%$sub) {
    682:               my($code) = $sub->{$func_name};
    684:               $code = "sub $AUTOLOAD { }" if (!$code and
$func_name eq 'DESTROY');
    685:               if (!$code) {
    695:               die "Undefined subroutine $AUTOLOAD\n" unless $code;
    696:               eval "package $pack; $code";
    697:               if ($@) {
    702:            CORE::delete($sub->{$func_name});  #free storage
    703:            return "$pack\:\:$func_name";
   exited CGI::_compile
   2:       foreach (@_) {
  exited CGI::AUTOLOAD for CGI::_compile_all
 exited CGI::_setup_symbols
exited CGI::compile
46:     1;
3:
entering Config::DESTROY
exited Config::DESTROY
entering IO::Handle::DESTROY
exited IO::Handle::DESTROY
Carp::(/usr/local/lib/perl5/5.6.0/Carp.pm:97):
97:         { local $@; require Carp::Heavy; }  # XXX fix require to not
clear $@?
Carp::(/usr/local/lib/perl5/5.6.0/Carp.pm:97):
97:         { local $@; require Carp::Heavy; }  # XXX fix require to not
clear $@?
Carp::(/usr/local/lib/perl5/5.6.0/Carp.pm:97):
97:         { local $@; require Carp::Heavy; }  # XXX fix require to not
clear $@?
Carp::(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:253):
253:    1;
Carp::(/usr/local/lib/perl5/5.6.0/Carp.pm:98):
98:         goto &longmess_heavy;
Carp::longmess_heavy(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:30):
30:         return @_ if ref $_[0];
Carp::longmess_heavy(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:31):
31:         my $error = join '', @_;
Carp::longmess_heavy(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:32):
32:         my $mess = "";
Carp::longmess_heavy(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:33):
33:         my $i = 1 + $CarpLevel;
Carp::longmess_heavy(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:34):
34:         my ($pack,$file,$line,$sub,$hargs,$eval,$require);
Carp::longmess_heavy(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:35):
35:         my (@a);
Carp::longmess_heavy(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:39):
39:         while (do { { package DB; @a = caller($i++) } } ) {
Carp::longmess_heavy(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:39):
39:         while (do { { package DB; @a = caller($i++) } } ) {
Carp::longmess_heavy(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:125):
125:        my $msg = \($mess || $error);
Carp::longmess_heavy(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:126):
126:        $$msg =~ tr/\0//d;
Carp::longmess_heavy(/usr/local/lib/perl5/5.6.0/Carp/Heavy.pm:127):
127:        $$msg;
========================================
Any help would be appreciated.

Reply via email to