ysmartnet has asked for the wisdom of the Perl Monks concerning the following question:

Dear all, apache2.0.55, openssl 0.9.8n and mod_perl worked well on the Linux 2.6.18. However mod_perl 2.2.04 crashes after apache is upgraded to 2.2.17. If I comment out the mod_perl handler in the configuration, then it can work. Can somebody give a suggestion what I can do next? Thanks

(gdb) bt #0 0x00002b45d829f140 in strcmp () from /lib64/libc.so.6 #1 0x00002b45d862f689 in lh_insert () from /lib64/libcrypto.so.0.9.8 #2 0x00002b45d8608c2d in OBJ_NAME_add () from /lib64/libcrypto.so.0.9 +.8 #3 0x00002b45d86366a6 in OpenSSL_add_all_digests () from /lib64/libcr +ypto.so.0.9.8 #4 0x00002b45e56339d9 in init () at SSL.xs:55 #5 0x00002b45e5633a92 in _SSL_init (my_perl=<value optimized out>, cv +=0x1f4f7b50) at SSL.c:698 #6 0x00002b45d8fc0a96 in Perl_pp_entersub () from /usr/lib64/perl5/5. +8.8/x86_64-linux-thread-multi/CORE/libperl.so #7 0x00002b45d8fba33e in Perl_runops_standard () from /usr/lib64/perl +5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so #8 0x00002b45d8f676f0 in Perl_call_sv () from /usr/lib64/perl5/5.8.8/ +x86_64-linux-thread-multi/CORE/libperl.so #9 0x00002b45d8f67a69 in Perl_call_list () from /usr/lib64/perl5/5.8. +8/x86_64-linux-thread-multi/CORE/libperl.so #10 0x00002b45d8f95604 in Perl_newATTRSUB () from /usr/lib64/perl5/5.8 +.8/x86_64-linux-thread-multi/CORE/libperl.so #11 0x00002b45d8f93c86 in Perl_utilize () from /usr/lib64/perl5/5.8.8/ +x86_64-linux-thread-multi/CORE/libperl.so #12 0x00002b45d8f86d09 in Perl_yyparse () from /usr/lib64/perl5/5.8.8/ +x86_64-linux-thread-multi/CORE/libperl.so #13 0x00002b45d8febd46 in ?? () from /usr/lib64/perl5/5.8.8/x86_64-lin +ux-thread-multi/CORE/libperl.so #14 0x00002b45d8fedb04 in Perl_pp_require () from /usr/lib64/perl5/5.8 +.8/x86_64-linux-thread-multi/CORE/libperl.so #15 0x00002b45d8fba33e in Perl_runops_standard () from /usr/lib64/perl +5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so #16 0x00002b45d8f676f0 in Perl_call_sv () from /usr/lib64/perl5/5.8.8/ +x86_64-linux-thread-multi/CORE/libperl.so #17 0x00002b45d8f67a69 in Perl_call_list () from /usr/lib64/perl5/5.8. +8/x86_64-linux-thread-multi/CORE/libperl.so #18 0x00002b45d8f95604 in Perl_newATTRSUB () from /usr/lib64/perl5/5.8 +.8/x86_64-linux-thread-multi/CORE/libperl.so #19 0x00002b45d8f93c86 in Perl_utilize () from /usr/lib64/perl5/5.8.8/ +x86_64-linux-thread-multi/CORE/libperl.so #20 0x00002b45d8f86d09 in Perl_yyparse () from /usr/lib64/perl5/5.8.8/ +x86_64-linux-thread-multi/CORE/libperl.so #21 0x00002b45d8febd46 in ?? () from /usr/lib64/perl5/5.8.8/x86_64-lin +ux-thread-multi/CORE/libperl.so #22 0x00002b45d8fedb04 in Perl_pp_require () from /usr/lib64/perl5/5.8 +.8/x86_64-linux-thread-multi/CORE/libperl.so #23 0x00002b45d8fba33e in Perl_runops_standard () from /usr/lib64/perl +5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so #24 0x00002b45d8f63b7c in Perl_eval_sv () from /usr/lib64/perl5/5.8.8/ +x86_64-linux-thread-multi/CORE/libperl.so #25 0x00002b45d8d13611 in modperl_require_module (my_perl=0x20a87d30, +pv=0x1e6fe618) at modperl_util.c:29 #26 0x00002b45d8d0d1b0 in modperl_config_apply_PerlModule (s=0x1e6056e +8, scfg=0x1e668910, perl=0x20a87d30, p=0x1e5ff138) at modperl_config.c:398 #27 0x00002b45d8d0b4bb in modperl_startup (s=0x1e6056e8, p=0x1e5ff138) + at mod_perl.c:331 #28 0x00002b45d8d0b275 in modperl_startup (s=0x1e6056e8, p=0x1e5ff138) + at mod_perl.c:207 #29 0x00002b45d8d0b6f5 in modperl_init (base_server=0x2b45e280c5f4, p= +0x2b45d869129f) at mod_perl.c:458 #30 0x00002b45d8d0b846 in modperl_hook_init (pconf=0x1e5ff138, plog=<v +alue optimized out>, ptemp=<value optimized out>, s=0x1e6056e8) at mod_perl.c:626 #31 0x000000000043657c in ap_run_open_logs (pconf=0x1e5ff138, plog=0x1 +e63d328, ptemp=0x1e607178, s=0x1e6056e8) at config.c:148 #32 0x000000000042429c in main (argc=4, argv=0x7fff05be78d8) at main.c +:722 (gdb) f 31 #31 0x000000000043657c in ap_run_open_logs (pconf=0x1e5ff138, plog=0x1 +e63d328, ptemp=0x1e607178, s=0x1e6056e8) at config.c:148 148 config.c: No such file or directory. in config.c

Replies are listed 'Best First'.
Re: mod_perl crashes after apache upgraded
by CountZero (Bishop) on Jan 17, 2011 at 08:00 UTC
    And did you also recompile / reinstall mod_perl2 after you upgraded Apache?

    CountZero

    A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

      Hi Sure, I did compile against the new apache source code. Another point I found is that apache can be up if I only upgrade the apache/perl rpm, but it crashes after I restart apache. I guess it is due to a library residing in memory. Thanks
        And it compiled without errors and all tests ran OK?

        CountZero

        A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

Re: mod_perl crashes after apache upgraded
by hsinclai (Deacon) on Jan 17, 2011 at 04:25 UTC
    Wow apache 2.0.x to 2.2.x upgrade is quite a jump ! :)

    May I suggest checking the apache configuration to make sure all log locations exist and are writable at start time? Crashing with "No such file or directory" on "ap_run_open_logs" suggests that something related to this might be a problem.

      Hi hsinclai, Yes, it is a huge jump. but I think "No such file or directory" from config.c only shows the apache source code is not found. Thanks for your reply ysmartnet
        > I think "No such file or directory" from config.c only shows the apache source code is not found.

        Actually, no, I don't believe it means the source code is not found -- it is telling you which line in config.c is generating the error "No such file or directory".. so if you consulted line 148 in the source code of config.c you would see the source code that threw that particular exception.

      "No such file or directory" is print only when I jumped to the 31 stack frame. Thanks for your comments.