Try switching to the prefork mpm. It's the only one I can get to work without crashing.
On Wed, Sep 5, 2018 at 3:50 PM, Andrew Joshwa <4andrewjosh...@gmail.com> wrote: > Hello, > > > > I am encountering frequent occurrences of httpd crash in mod_perl/libperl > in HP-UX environment with Apache 2.4.18 (mpm_worker) + Mod_perl 2.0.10 + > perl 5.28 configuration > > > > Below is my sample (httpd.conf) > > > > LoadModule mpm_worker_module modules/mod_mpm_worker.so > > PerlModule TEST::coreit > > <Location /coreit> > > SetHandler perl-script > > PerlResponseHandler TEST::coreit > > </Location> > > > > Below is the content of the coreit.pm > > > > # cat coreit.pm > > package TEST::coreit; > > > > use strict; > > use warnings; > > use Apache2::RequestRec (); > > use Apache2::RequestIO (); > > > > use CGI ':standard'; > > use CGI::Carp qw(fatalsToBrowser); > > > > use Apache2::Const -compile => qw(OK); > > use APR::Const -compile => qw(ECONNABORTED); > > > > # Declare the subroutines > > > > sub handler { > > my $r = shift; > > my $contentType = "text/html"; > > my $response = ""; > > my $respLength = 0; > > > > $response = "Apache Core dump test"; > > $respLength = length ( $response ); > > $r->content_type($contentType); > > $r->puts($response); > > $r->rflush(); > > return Apache2::Const::OK; > > } > > 1; > > > > Below is the test driver script that found this core dump > > > > # cat coreit.ApacheDriver.ksh > > #!/usr/bin/ksh > > typeset -i loopIndex=0 > > typeset -i upperBound=2 > > date > > while (( loopIndex < upperBound )) > > do > > print $loopIndex > > $PWD/Httpd.pl & > > (( loopIndex = loopIndex + 1 )) > > done > > wait > > > > date > > > > # cat Httpd.pl > > #!/usr/bin/perl > > > > use strict; > > use warnings; > > use LWP::Simple; > > use LWP::UserAgent; > > use Time::HiRes; > > > > my $browser = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 }); > > for (my $count=0;$count < 2000; $count=$count+1) > > { > > my $count=0; > > while ($count<126) > > { > > my $url = "https://<your_server_name>: > 49222/coreit?dp=cn=crl$count,o=xyz"; > > my $response = $browser->get($url); > > print ("Apache retun code is " . $response->code . "with > count=" . $count. "\n"); > > Time::HiRes::sleep(0.1); > > $count=$count+1; > > } > > } > > > > > > > > So, when I run this script like below in backgorund mode for an hour , I > am getting nearly 40+ core dump files > > > > ksh coreit.ApacheDriver.ksh 1>/var/tmp/outf 2>&1 & > > > > > > Below are the few back traces that we are seeing: > > > > Trace 1: > > ======== > > > > #0 0x1ffffffffe9b2940:1 in memmove+0x941 () from /usr/lib/hpux64/libc.so.1 > > (gdb) bt > > #0 0x1ffffffffe9b2940:1 in memmove+0x941 () from /usr/lib/hpux64/libc.so.1 > > #1 0x1ffffffffeac6780:0 in real_realloc+0xdd0 () > > from /usr/lib/hpux64/libc.so.1 > > #2 0x1ffffffffeac5960:0 in _realloc+0xa0 () from /usr/lib/hpux64/libc.so.1 > > #3 0x1ffffffffead2330:0 in realloc+0x280 () from /usr/lib/hpux64/libc.so.1 > > #4 0x1ffffffffe2d3770:0 in Perl_safesysrealloc () at util.c:271 > > #5 0x1ffffffffe32b6a0:0 in S_hv_auxinit () at hv.c:2237 > > #6 0x1ffffffffe32b860:0 in Perl_hv_riter_p () at hv.c:2311 > > #7 0x1ffffffffe0e5eb0:0 in copyENV () at modperl_perl_global.c:264 > > #8 0x1ffffffffe0e6110:0 in modperl_perl_global_gvhv_save () > > at modperl_perl_global.c:322 > > #9 0x1ffffffffe0e6460:0 in modperl_perl_global_save () > > at modperl_perl_global.c:436 > > #10 0x1ffffffffe0e6730:0 in modperl_perl_global_request_save () > > at modperl_perl_global.c:485 > > #11 0x1ffffffffe09cc10:0 in modperl_response_handler_cgi () at > mod_perl.c:1073 > > #12 0x40000000000faf10:0 in ap_run_handler () > > #13 0x40000000000fcee0:0 in ap_invoke_handler () at config.c:448 > > #14 0x4000000000147790:0 in ap_process_async_request () at > http_request.c:410 > > #15 0x4000000000147ae0:0 in ap_process_request () at http_request.c:442 > > #16 0x400000000013d2a0:0 in ap_process_http_sync_connection () > > at http_core.c:209 > > #17 0x400000000013d360:0 in ap_process_http_connection () at > http_core.c:251 > > ---Type <return> to continue, or q <return> to quit--- > > #18 0x4000000000120fc0:0 in ap_process_connection () at connection.c:228 > > #19 0x1ffffffffdc76ba0:0 in process_socket () at worker.c:677 > > #20 0x1ffffffffdc785d0:0 in worker_thread () at worker.c:1068 > > #21 0x1fffffffffdc1180:0 in dummy_worker () at threadproc/unix/thread.c:160 > > #22 0x1fffffffff7b80e0:0 in __pthread_bound_body+0x1c0 () > > from /usr/lib/hpux64/libpthread.so.1 > > > > Trace 2: > > ======== > > > > #0 0x1ffffffffe3f4f70:0 in Perl_leave_scope () at scope.c:1148 > > #1 0x1ffffffffe420b80:0 in Perl_delete_eval_scope () at pp_ctl.c:4570 > > #2 0x1ffffffffe1b1dd0:0 in Perl_call_sv () at perl.c:3056 > > #3 0x1ffffffffe0aee30:0 in modperl_callback () at modperl_callback.c:100 > > #4 0x1ffffffffe0afc40:0 in modperl_callback_run_handlers () > > at modperl_callback.c:236 > > #5 0x1ffffffffe0b0d30:0 in modperl_callback_per_dir () > > at modperl_callback.c:342 > > #6 0x1ffffffffe09d570:0 in modperl_response_handler_run () at > mod_perl.c:1005 > > #7 0x1ffffffffe09cd70:0 in modperl_response_handler_cgi () at > mod_perl.c:1095 > > #8 0x40000000000faf10:0 in ap_run_handler () > > #9 0x40000000000fcee0:0 in ap_invoke_handler () at config.c:448 > > #10 0x4000000000147790:0 in ap_process_async_request () at > http_request.c:410 > > #11 0x4000000000147ae0:0 in ap_process_request () at http_request.c:442 > > #12 0x400000000013d2a0:0 in ap_process_http_sync_connection () > > at http_core.c:209 > > #13 0x400000000013d360:0 in ap_process_http_connection () at > http_core.c:251 > > #14 0x4000000000120fc0:0 in ap_process_connection () at connection.c:228 > > #15 0x1ffffffffdc76ba0:0 in process_socket () at worker.c:677 > > #16 0x1ffffffffdc785d0:0 in worker_thread () at worker.c:1068 > > #17 0x1fffffffffdc1180:0 in dummy_worker () at threadproc/unix/thread.c:160 > > #18 0x1fffffffff7b80e0:0 in __pthread_bound_body+0x1c0 () > > from /usr/lib/hpux64/libpthread.so.1 > > > > > > Trace 3: > > ======== > > > > #0 0x1ffffffffe0e6aa0:1 in modperl_perl_global_request_restore () > > at modperl_perl_global.c:479 > > #1 0x1ffffffffe09cdb0:0 in modperl_response_handler_cgi () at > mod_perl.c:1099 > > #2 0x40000000000faf10:0 in ap_run_handler () > > #3 0x40000000000fcee0:0 in ap_invoke_handler () at config.c:448 > > #4 0x4000000000147790:0 in ap_process_async_request () at > http_request.c:410 > > #5 0x4000000000147ae0:0 in ap_process_request () at http_request.c:442 > > #6 0x400000000013d2a0:0 in ap_process_http_sync_connection () > > at http_core.c:209 > > #7 0x400000000013d360:0 in ap_process_http_connection () at > http_core.c:251 > > #8 0x4000000000120fc0:0 in ap_process_connection () at connection.c:228 > > #9 0x1ffffffffdc76ba0:0 in process_socket () at worker.c:677 > > #10 0x1ffffffffdc785d0:0 in worker_thread () at worker.c:1068 > > #11 0x1fffffffffdc1180:0 in dummy_worker () at threadproc/unix/thread.c:160 > > #12 0x1fffffffff7b80e0:0 in __pthread_bound_body+0x1c0 () > > > > > > Trace 4: > > ======== > > > > #0 0x1ffffffffe36a7b0:0 in Perl_sv_upgrade () at sv.c:1413 > > #1 0x1ffffffffe381540:0 in Perl_sv_sethek () at sv.c:5012 > > #2 0x1ffffffffe40c560:0 in Perl_pp_caller () at pp_ctl.c:1921 > > #3 0x1ffffffffe33b8c0:0 in Perl_runops_standard () at run.c:42 > > #4 0x1ffffffffe1b1f30:0 in Perl_call_sv () at perl.c:3071 > > #5 0x1ffffffffe2d9210:0 in S_invoke_exception_hook () at util.c:1563 > > #6 0x1ffffffffe2da260:0 in Perl_vwarn () at util.c:1860 > > #7 0x1ffffffffe2da960:0 in Perl_vwarner () at util.c:1974 > > #8 0x1ffffffffe2daba0:0 in Perl_ck_warner_d () at util.c:1927 > > #9 0x1ffffffffe324b00:0 in Perl_hv_iternext_flags () at hv.c:2771 > > #10 0x1ffffffffe0e6000:0 in copyENV () at modperl_perl_global.c:272 > > #11 0x1ffffffffe0e6110:0 in modperl_perl_global_gvhv_save () > > at modperl_perl_global.c:322 > > #12 0x1ffffffffe0e6460:0 in modperl_perl_global_save () > > at modperl_perl_global.c:436 > > #13 0x1ffffffffe0e6730:0 in modperl_perl_global_request_save () > > at modperl_perl_global.c:485 > > #14 0x1ffffffffe09cc10:0 in modperl_response_handler_cgi () at > mod_perl.c:1073 > > #15 0x40000000000faf10:0 in ap_run_handler () > > #16 0x40000000000fcee0:0 in ap_invoke_handler () at config.c:448 > > #17 0x4000000000147790:0 in ap_process_async_request () at > http_request.c:410 > > #18 0x4000000000147ae0:0 in ap_process_request () at http_request.c:442 > > #19 0x400000000013d2a0:0 in ap_process_http_sync_connection () > > > > > > As you see above some back traces are different for the cores that we got. > So we feel that there is some race between threads here. > > > > Please help us to solve this above. > > > > Regards, > > Andrew > -- John Dunlap *CTO | Lariat * *Direct:* *j...@lariat.co <j...@lariat.co>* *Customer Service:* 877.268.6667 supp...@lariat.co