My mod_perl appears to cause a segmentation fault in my Apache. 'httpd -X' simply gives 'Segmentation Fault' and my server does not start.
I am using Apache 2.2.22, mod_perl 2.0.5, CentOS 5.7 x86_64. I built mod_perl and Apache together from source with the following command:
perl5.12.4 Makefile.PL MP_USE_STATIC=1 MP_AP_PREFIX=/usr/local/src/httpd-2.2.22 MP_AP_CONFIGURE="--with-mpm=prefork --enable-rewrite"
What I have tried so far:
I tried the following:
gdb -c /usr/local/apache2/bin/httpd
Program received signal SIGSEGV, Segmentation fault.
0x00002aaab0db0270 in ?? ()
(gdb) bt
#0 0x00002aaab0db0270 in ?? ()
#1 0x00000000004c9d24 in Perl_newUNOP ()
#2 0x00000000004fb6a6 in Perl_yyparse ()
#3 0x0000000000557c57 in S_doeval ()
#4 0x0000000000559546 in Perl_pp_require ()
#5 0x0000000000528bae in Perl_runops_standard ()
#6 0x00000000004d5d2f in Perl_eval_sv ()
#7 0x0000000000478425 in modperl_require_module ()
#8 0x0000000000472283 in modperl_boot ()
#9 0x00000000005529cc in Perl_leave_scope ()
#10 0x00000000004d87eb in S_parse_body ()
#11 0x00000000004d927c in perl_parse ()
#12 0x0000000000471d2a in modperl_startup ()
#13 0x0000000000471cbc in modperl_startup ()
#14 0x000000000047202e in modperl_init ()
#15 0x000000000047215f in modperl_hook_init ()
#16 0x00000000004737bb in modperl_cmd_perldo ()
#17 0x000000000046432b in invoke_cmd (cmd=0x5b9880, parms=0x7fffffffe770, mconfig=0x844728, args=0x89b7d8 "use lib qw( /usr/local/apache2/virtualhosts/api.nwwi.nl /httpdocs/lib/ );\\n") at config.c:757
#18 0x0000000000465865 in ap_walk_config_sub (current=0x89b828, parms=0x7fffffffe770, section_vector=0x830c18) at config.c:1163
#19 0x0000000000465914 in ap_walk_config (current=0x89b828, parms=0x7fffffffe770, section_vector=0x830c18) at config.c:1196
#20 0x0000000000466cb9 in ap_process_config_tree (s=0x82de10, conftree=0x86fcb0, p=0x822138, ptemp=0x82a178) at config.c:1765
#21 0x0000000000449512 in main (argc=2, argv=0x7fffffffe9e8) at main.c:723
I have no idea how to read and interpret this. Can somebody help and point me in a direction to further troubleshoot this?
I received the following response from Dave Hodgkinson on the mod_perl mailing list:
#17 0x000000000046432b in invoke_cmd (cmd=0x5b9880,
parms=0x7fffffffe770, mconfig=0x844728, args=0x89b7d8 "use lib qw(
/usr/local/apache2/virtualhosts/api.nwwi.nl /httpdocs/lib/ );\\n") at
config.c:757
This appears to be what it's trying to do. Take that directive out and see what happens?
After some experimentation I changed part of the Apache configuration from
PerlSwitches -I/srv/www/example.com/application/lib/
<Perl>
use lib qw( /srv/www/example.com/application/lib/ );
</Perl>
PerlModule application
to
<Perl>
use lib qw( /srv/www/example.com/application/lib/ );
</Perl>
and this fixed my issue.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.