Red Hat Bugzilla – Bug 11651
apache/mod_perl SEGV's when loading perl XS modules at startup
Last modified: 2008-05-01 11:37:55 EDT
I have a complex web site which makes use of many different apache and mod
perl modules (along with mod_php, mod_fastcgi, mysql etc.). Previously I
compiled up my own apache with statically linked mod_perl because redhat
mod_perl did not ship with STACKED_HANDLERS enabled, which my mod_perl
authentication modules need.
RH6.2 mod_perl does have STACKED_HANDLERS enabled, so now I'm attempting to
use the stock RPMS.
I found that httpd does not start up - the httpd just dies - no messages.
strace /usr/sbin/httpd -X showed it SEGV'ing as it was trying to load the
XS part of a perl module that is 'use'd by a perl module which should be
loaded when apache starts (its an 'authen' handler, hence STACKED_HANDLERS
- not just an Apache::Registry/cgi script - I can't load it later)
I removed all the modules I could, and removed all the httpd.conf
configuration directives until I got it down to a completely trivial base
System was a new, 'out of the box' rh6.2, with:
Add a line at the end of /etc/httpd/conf/httpd.conf
Thats it, Kaboom. httpd SEGV's on startup. This works (i.e. doesn't work)
with 'PerlModule IO' as well, which is the only other perl 'XS' module in a
plain RH6.2 system. (I'm not listing the hundreds of others on CPAN).
Bug number #8169 was closed with a workaround of putting the mod_perl
LoadModule/AddModule lines before other module lines in the httpd.conf. Bug
#10206 for rh6.1 doesn't seem to have progressed for a couple of months,
with the original submitter noting that #8169 workaround worked for him
The workaround works for this simple test case here too, but makes no
difference for my 'real world' case of my complete web server. It is
obviously a (severe) bug (segv at startup), and the workaround is just
'luck' - I don't know what effect it may have on the stability once it's up
I suspect the problem is related to mod_perl being linked as a DSO - my
home grown apache/mod_perl's have been statically linked, and I guess I'll
have to keep maintaining them for now - its painful to keep up though...
We've seen sporadic strange problems crop up with mod_perl 1.21. Version 1.23
is in Raw Hide (ftp://ftp.redhat.com/pub/rawhide/SRPMS/SRPMS/), and it may solve
the problem. 1.24 was released within the last week, and should be in Raw Hide
soon. Please see if running "rpm --rebuild" on the 1.23 SRPM and upgrading to
the resulting binary package solves your problem.
The rawhide RPM for mod_perl-1.23 is built against perl-5.6, so I used the
source RPM and rebuilt it against perl-5.00503, as suggested.
This seems to have cured the problem - I don't get a SEGV with the base test
case anymore, and initial testing with my full application seems OK up till
The current setup in Raw Hide seems to work with the "PerlModule MD5"
statement added, so I'm going to mark this as resolved in Raw Hide. Please
reopen this bug if you find that this problem resurfaces.