apache and mod_perl problem.
I have a problem with apache when mod_perl is enabled, on a Sarge
system - a 200MHz PPC603e performa with 136MB RAM.
Throughout apache's error.log I get entries like the following:
[Sun Sep 4 07:10:37 2005] [notice] child pid 18571 exit signal
Segmentation fault (11)
I've compared the times that the segfaults happen with the access log
entries, and can't find a pattern to any particular files being
accessed - let alone perl scripts. I only actually have one perl page
on my site, which works fine when mod_perl is enabled. The above
segfaults happen perhaps 3-10 times an hour, all through the day.
Another symptom I'm finding is when i restart apache, the following
is apppended to the error.log:
[Mon Sep 5 04:01:29 2005] [warn] child process 21696 did not exit,
sending another SIGHUP
[Mon Sep 5 04:01:29 2005] [warn] child process 21697 did not exit,
sending another SIGHUP
[Mon Sep 5 04:01:29 2005] [warn] child process 21698 did not exit,
sending another SIGHUP
[Mon Sep 5 04:01:29 2005] [warn] child process 21699 did not exit,
sending another SIGHUP
[Mon Sep 5 04:01:29 2005] [warn] child process 21700 did not exit,
sending another SIGHUP
[Mon Sep 5 04:01:29 2005] [warn] child process 21701 did not exit,
sending another SIGHUP
[Mon Sep 5 04:01:30 2005] [notice] SIGHUP received. Attempting to
restart
[Mon Sep 5 04:01:32 2005] [notice] Apache/1.3.33 (Debian GNU/Linux)
PHP/4.3.10-16 mod_perl/1.29 configured -- resuming normal operations
[Mon Sep 5 04:01:33 2005] [notice] Accept mutex: sysvsem (Default:
sysvsem)
it looks like the currently running apache processes just don't want
to quit when mod_perl is running.
If I apt-get remove libapache-mod-perl or comment out the mod_perl
line in /etc/apache/modules.conf then after restarting apache there
are no warnings like above, and so far (with mod_perl disabled) I've
gone several hours without a segfault noted in the error.log.
A third symptom (which may or may not be related) is 2-4 times a day
an apache process will decide to use as much cpu as it can get until
restarted - at the end of the day I could have 4 of them all using
about 24% cpu time each. So far that hasn't happened when I have
mod_perl disabled, but I may not have tested the server long enough
to check if that's genuinely stopped or not).
I've also tried removing the one page on my site that uses perl
(while leaving mod_perl enabled) and the segfaults & warns still
occur. again, disabling mod_perl stops them.
Any clues as to what's happening? I imagine it's possible the [warn]s
might be no problem by themselves as they're just putting a few lines
in a logfile once a day when apache is restarted, but the segfaults
may mean visitors to the site are getting half-loaded or non-loading
pages. the cpu time problem slows server response down drastically too.
thanks,
dana
Reply to: