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