Hello,

I'm trying to follow the script in section 2.14 of the book "mod_perl 
Developer's Cookbook" in order to pre-load my Apache::registry scripts 
using Apache::RegistryLoader.  I'm getting a seg fault when I attempt to 
start apache.

My startup.pl is as follows:

#!/usr/local/bin/perl

use lib qw(/usr/local/apache/lib/perl);
use Apache::DBI;
use Apache::Registry;
use Apache::RegistryLoader;
use DBI;
use DBD::Pg;
use strict;
use CGI qw(-compile :all);
use DirHandle;

my $rl = Apache::RegistryLoader->new;
my $dh = DirHandle->new("/usr/local/apache/cgi-bin/chimpkit/") or die $!;
foreach my $file ($dh->read) {
     next unless $file =~ m/\.pl$/;
     print STDOUT "Pre-loading $file\n";
$rl->handler("/cgi-bin/chimpkit/$file","/usr/local/apache/cgi-bin/chimpkit/$file");
}

1;

When I attempt to start apache, I get the following messages on STDOUT:

[root@castle bin]# ./apachectl start
Pre-loading chimpworks.pl
Apache::Debug: [level 1]
Compiled package "Apache::ROOT::cgi_2dbin::chimpkit::chimpworks_2epl" 
for process 27233 at 
/usr/lib/perl5/site_perl/5.6.0/i386-linux/Apache/RegistryLoader.pm line 76.
./apachectl: line 171: 27233 Segmentation fault      (core dumped) $HTTPD
./apachectl start: httpd could not be started
[root@castle bin]#

Nothing has been written to the error log.  The format of my 
$rl->handler() call seems ok to me.  I perused the archives for a while 
and tried a couple of things that fixed other people's RegistryLoader 
problems, to no avail.  Everything works fine if I comment out the call 
to handler() except of course now each child has a copy of the compiled 
code.  Any thoughts?

Thanks,
Fran

Reply via email to