Hi Steve I took some time to look further into this problem:
> [Fri Apr 10 08:04:45.465468 2015] [proxy_balancer:emerg] [pid 19852:tid > 140397405107968] AH01177: Failed to lookup provider 'shm' for 'slotmem': is > mod_slotmem_shm loaded?? and I found that the apache build process does not allow slotmem_shm_module to be loaded by default, i.e. "LoadModule slotmem_shm_module modules/mod_slotmem_shm.so" was commented out in httpd.conf. Uncommenting that line made this problem go away. At the end of the process (with Apache built without "--enable-maintainer-mode", and with ap_strchr replaced with strchr, which you suggested (but may not be necessary here without "--enable-maintainer-mode", I could load my modules successfully. There were still some errors when running "make test" for mod_perl: ... t/hooks/authen_digest.t ................. 1/7 # Failed test 4 in t/hooks/authen_digest.t at line 36 # Failed test 5 in t/hooks/authen_digest.t at line 38 # Failed test 6 in t/hooks/authen_digest.t at line 42 # Failed test 7 in t/hooks/authen_digest.t at line 46 t/hooks/authen_digest.t ................. Failed 4/7 subtests ... t/perl/ithreads3.t ...................... 1/6 # Failed test 3 in t/perl/ithreads3.t at line 32 # Failed test 4 in t/perl/ithreads3.t at line 33 # Failed test 5 in t/perl/ithreads3.t at line 35 t/perl/ithreads3.t ...................... Failed 3/6 subtests Here is some more info: [12:26:07]jiegao@XXXX/usr/local/src/mod_perl:975> rm t/logs/error_log jiegao@XXXX/usr/local/src/mod_perl:976> t/TEST -v t/hooks/authen_digest.t t/perl/ithreads3.t [warning] setting ulimit to allow core files ulimit -c unlimited; /usr/local/bin/perl /usr/local/src/mod_perl-2.0/t/TEST -v 't/hooks/authen_digest.t' 't/perl/ithreads3.t' /usr/local/httpd-2.4.12/bin/httpd -d /usr/local/src/mod_perl-2.0/t -f /usr/local/src/mod_perl-2.0/t/conf/httpd.conf -D APACHE2 -D APACHE2_4 -D PERL_USEITHREADS using Apache/2.4.12 (worker MPM) waiting 300 seconds for server to start: .[Mon Apr 13 12:28:17.293771 2015] [env:warn] [pid 25085:tid 140715845183232] AH01506: PassEnv variable LD_LIBRARY_PATH was undefined [Mon Apr 13 12:28:17.319527 2015] [perl:info] [pid 25085:tid 140715845183232] 6 Apache2:: modules loaded [Mon Apr 13 12:28:17.319576 2015] [perl:info] [pid 25085:tid 140715845183232] 0 APR:: modules loaded [Mon Apr 13 12:28:17.319633 2015] [perl:info] [pid 25085:tid 140715845183232] base server + 32 vhosts ready to run tests ... waiting 300 seconds for server to start: ok (waited 2 secs) server localhost:8529 started server localhost:8530 listening (filter_out_apache) server localhost:8531 listening (perlsections) server localhost:8532 listening (inherit) server localhost:8533 listening (TestModperl::perl_options2) server localhost:8534 listening (TestModperl::perl_options) server localhost:8535 listening (TestModperl::setupenv) server localhost:8536 listening (TestModperl::merge) server localhost:8537 listening (TestUser::rewrite) server localhost:8538 listening (TestModules::proxy) server localhost:8539 listening (TestVhost::config) server localhost:8540 listening (TestVhost::log) server localhost:8541 listening (TestDirective::perlcleanuphandler) server localhost:8542 listening (TestProtocol::eliza) server localhost:8543 listening (TestProtocol::echo_nonblock) server localhost:8544 listening (TestProtocol::echo_block) server localhost:8545 listening (TestProtocol::echo_timeout) server localhost:8546 listening (TestProtocol::echo_bbs2) server localhost:8547 listening (TestProtocol::pseudo_http) server localhost:8548 listening (TestProtocol::echo_filter) server localhost:8549 listening (TestProtocol::echo_bbs) server localhost:8550 listening (TestPreConnection::note) server localhost:8551 listening (TestHooks::startup) server localhost:8552 listening (TestHooks::hookrun) server localhost:8553 listening (TestHooks::trans) server localhost:8554 listening (TestHooks::stacked_handlers2) server localhost:8555 listening (TestHooks::init) server localhost:8556 listening (TestFilter::both_str_con_add) server localhost:8557 listening (TestFilter::in_bbs_inject_header) server localhost:8558 listening (TestFilter::in_str_msg) server localhost:8559 listening (TestFilter::in_bbs_msg) server localhost:8560 listening (TestDirective::perlrequire) server localhost:8561 listening (TestDirective::perlmodule) server localhost:8562 listening (TestPerl::ithreads) server localhost:8563 listening (TestPerl::ithreads3) server localhost:8564 listening (TestDirective::perlloadmodule3) server localhost:8565 listening (TestDirective::perlloadmodule5) server localhost:8566 listening (TestDirective::perlloadmodule4) server localhost:8567 listening (TestAPI::add_config) server localhost:8568 listening (TestDirective::perlloadmodule6) server localhost:8569 listening (TestHooks::push_handlers_anon) t/hooks/authen_digest.t .. 1..7 # Running under perl version 5.020002 for linux # Current time local: Mon Apr 13 12:28:20 2015 # Current time GMT: Mon Apr 13 02:28:20 2015 # Using Test.pm version 1.26 # Using Apache/Test.pm version 1.38 # testing : handler returned HTTP_OK # expected: 200 # received: '200' ok 1 # response had no WWW-Authenticate header ok 2 # testing : handler returned HTTP_UNAUTHORIZED # expected: 401 # received: '401' ok 3 # response had a WWW-Authenticate header not ok 4 # Failed test 4 in t/hooks/authen_digest.t at line 36 # testing : response is using Digest authentication scheme # expected: qr/^Digest/ # received: undef not ok 5 # Failed test 5 in t/hooks/authen_digest.t at line 38 # testing : WWW-Authenticate header contains the proper realm # expected: qr/realm="Simple Digest"/ # received: undef not ok 6 # Failed test 6 in t/hooks/authen_digest.t at line 42 # testing : WWW-Authenticate header contains a nonce # expected: qr/nonce="/ # received: undef not ok 7 # Failed test 7 in t/hooks/authen_digest.t at line 46 Failed 4/7 subtests t/perl/ithreads3.t ....... 1..6 # Running under perl version 5.020002 for linux # Current time local: Mon Apr 13 12:28:21 2015 # Current time GMT: Mon Apr 13 02:28:21 2015 # Using Test.pm version 1.26 # Using Apache/Test.pm version 1.38 # connecting to http://localhost:8563/ # testing : perl-script 1 # expected: 2 # received: '2' ok 1 # testing : modperl 1 # expected: 2 # received: '2' ok 2 # testing : perl-script 2 # expected: 5 # received: '2' not ok 3 # Failed test 3 in t/perl/ithreads3.t at line 32 # testing : modperl 2 # expected: 5 # received: '3' not ok 4 # Failed test 4 in t/perl/ithreads3.t at line 33 # testing : perl-script 3 # expected: 3 # received: '2' not ok 5 # Failed test 5 in t/perl/ithreads3.t at line 35 # testing : modperl 3 # expected: 3 # received: '3' ok 6 Failed 3/6 subtests Test Summary Report ------------------- t/hooks/authen_digest.t (Wstat: 0 Tests: 7 Failed: 4) Failed tests: 4-7 t/perl/ithreads3.t (Wstat: 0 Tests: 6 Failed: 3) Failed tests: 3-5 Files=2, Tests=13, 2 wallclock secs ( 0.05 usr 0.02 sys + 0.99 cusr 0.31 csys = 1.37 CPU) Result: FAIL Failed 2/2 test programs. 7/13 subtests failed. [warning] server localhost:8529 shutdown [warning] port 8529 still in use... ...done [ error] error running tests (please examine t/logs/error_log) # cat less t/logs/error_log ******************************************************************************** *** This is a test for Apache2::ServerUtil::server_shutdown_cleanup_register *** *** Following a line consisting only of * characters there should be a line *** *** containing *** *** "cleanup died: testing server_shutdown_cleanup_register". *** *** The next line should then read *** *** "done with server_shutdown_cleanup_register" *** ******************************************************************************** Apache2::ServerUtil: cleanup died: testing server_shutdown_cleanup_register *** done with server_shutdown_cleanup_register *** ******************************************************************************** END in modperl_extra.pl, pid=25085 END in modperl_extra.pl, pid=25085 [Mon Apr 13 12:28:20.045292 2015] [slotmem_shm:debug] [pid 25089:tid 140715845183232] mod_slotmem_shm.c(466): AH02301: attach looking for /usr/local/src/mod_perl-2.0/t/logs/slotmem-shm-mod_heartmonitor.shm [Mon Apr 13 12:28:20.045348 2015] [lbmethod_heartbeat:notice] [pid 25089:tid 140715845183232] AH02282: No slotmem from mod_heartmonitor [Mon Apr 13 12:28:20.176754 2015] [mpm_worker:notice] [pid 25089:tid 140715845183232] AH00292: Apache/2.4.12 (Unix) world domination series/2.0 mod_perl/2.0.9dev Perl/v5.20.2 configured -- resuming normal operations [Mon Apr 13 12:28:20.176805 2015] [mpm_worker:info] [pid 25089:tid 140715845183232] AH00293: Server built: Apr 13 2015 07:07:03 [Mon Apr 13 12:28:20.176846 2015] [core:notice] [pid 25089:tid 140715845183232] AH00094: Command line: '/usr/local/httpd-2.4.12/bin/httpd -d /usr/local/src/mod_perl-2.0/t -f /usr/local/src/mod_perl-2.0/t/conf/httpd.conf -D APACHE2 -D APACHE2_4 -D PERL_USEITHREADS' [Mon Apr 13 12:28:20.179522 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179579 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179584 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179588 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179591 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179595 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179598 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179602 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179605 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179608 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179612 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179627 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179631 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179635 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179638 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179641 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179645 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179648 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179652 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179655 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179658 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179662 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179665 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179668 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179672 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179675 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179679 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179682 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179685 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179689 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179692 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179700 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179704 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179707 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179711 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179714 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179718 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179721 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179725 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179744 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179749 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179752 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179755 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179759 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179762 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179765 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179769 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179772 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179776 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179779 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179782 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179789 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179792 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179796 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179799 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179802 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179806 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179809 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179813 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179816 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179820 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179823 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179851 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179855 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179858 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179862 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179873 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179883 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179887 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179890 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179894 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179903 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179907 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179910 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179914 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179917 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.179921 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1772): AH00924: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ shared already initialized [Mon Apr 13 12:28:20.179924 2015] [proxy:debug] [pid 25093:tid 140715845183232] proxy_util.c(1814): AH00926: worker http://localhost:8529/TestFilter__both_str_req_proxy_content/ local already initialized [Mon Apr 13 12:28:20.667343 2015] [authz_core:debug] [pid 25093:tid 140715476645632] mod_authz_core.c(835): [client 127.0.0.1:45582] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:21.300977 2015] [authz_core:debug] [pid 25093:tid 140715554629376] mod_authz_core.c(809): [client 127.0.0.1:45583] AH01626: authorization result of Require valid-user : denied (no authenticated user yet) [Mon Apr 13 12:28:21.301025 2015] [authz_core:debug] [pid 25093:tid 140715554629376] mod_authz_core.c(809): [client 127.0.0.1:45583] AH01626: authorization result of <RequireAny>: denied (no authenticated user yet) [Mon Apr 13 12:28:21.303225 2015] [authz_core:debug] [pid 25093:tid 140715554629376] mod_authz_core.c(809): [client 127.0.0.1:45583] AH01626: authorization result of Require valid-user : granted [Mon Apr 13 12:28:21.303252 2015] [authz_core:debug] [pid 25093:tid 140715554629376] mod_authz_core.c(809): [client 127.0.0.1:45583] AH01626: authorization result of <RequireAny>: granted [Mon Apr 13 12:28:21.314069 2015] [authz_core:debug] [pid 25093:tid 140715476645632] mod_authz_core.c(809): [client 127.0.0.1:45584] AH01626: authorization result of Require valid-user : denied (no authenticated user yet) [Mon Apr 13 12:28:21.314101 2015] [authz_core:debug] [pid 25093:tid 140715476645632] mod_authz_core.c(809): [client 127.0.0.1:45584] AH01626: authorization result of <RequireAny>: denied (no authenticated user yet) [Mon Apr 13 12:28:21.992567 2015] [authz_core:debug] [pid 25093:tid 140715554629376] mod_authz_core.c(835): [client 127.0.0.1:47865] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:21.997691 2015] [authz_core:debug] [pid 25093:tid 140715476645632] mod_authz_core.c(835): [client 127.0.0.1:47866] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:22.012035 2015] [authz_core:debug] [pid 25093:tid 140715554629376] mod_authz_core.c(835): [client 127.0.0.1:47867] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:22.012215 2015] [authz_core:debug] [pid 25093:tid 140715554629376] mod_authz_core.c(835): [client 127.0.0.1:47867] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:22.015558 2015] [authz_core:debug] [pid 25093:tid 140715476645632] mod_authz_core.c(835): [client 127.0.0.1:47868] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:22.019047 2015] [authz_core:debug] [pid 25093:tid 140715554629376] mod_authz_core.c(835): [client 127.0.0.1:47869] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:22.021466 2015] [authz_core:debug] [pid 25093:tid 140715476645632] mod_authz_core.c(835): [client 127.0.0.1:47870] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:22.021608 2015] [authz_core:debug] [pid 25093:tid 140715476645632] mod_authz_core.c(835): [client 127.0.0.1:47870] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:22.024982 2015] [authz_core:debug] [pid 25093:tid 140715554629376] mod_authz_core.c(835): [client 127.0.0.1:47871] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:22.028020 2015] [authz_core:debug] [pid 25093:tid 140715476645632] mod_authz_core.c(835): [client 127.0.0.1:47872] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:22.030287 2015] [authz_core:debug] [pid 25093:tid 140715554629376] mod_authz_core.c(835): [client 127.0.0.1:47873] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:22.030435 2015] [authz_core:debug] [pid 25093:tid 140715554629376] mod_authz_core.c(835): [client 127.0.0.1:47873] AH01628: authorization result: granted (no directives) [Mon Apr 13 12:28:22.246706 2015] [perl:info] [pid 25093:tid 140715845183232] Child process pid=25093 is exiting [Mon Apr 13 12:28:22.246890 2015] [perl:info] [pid 25093:tid 140715845183232] Child process pid=25093 is exiting - server push END in modperl_extra.pl, pid=25093 END in modperl_extra.pl, pid=25093 [Mon Apr 13 12:28:23.591699 2015] [core:info] [pid 25089:tid 140715845183232] AH00096: removed PID file /usr/local/src/mod_perl-2.0/t/logs/httpd.pid (pid=25089) [Mon Apr 13 12:28:23.591818 2015] [mpm_worker:notice] [pid 25089:tid 140715845183232] AH00295: caught SIGTERM, shutting down ******************************************************************************** *** This is a test for Apache2::ServerUtil::server_shutdown_cleanup_register *** *** Following a line consisting only of * characters there should be a line *** *** containing *** *** "cleanup died: testing server_shutdown_cleanup_register". *** *** The next line should then read *** *** "done with server_shutdown_cleanup_register" *** ******************************************************************************** Apache2::ServerUtil: cleanup died: testing server_shutdown_cleanup_register *** done with server_shutdown_cleanup_register *** ******************************************************************************** END in modperl_extra.pl, pid=25089 END in modperl_extra.pl, pid=25089 BTW, you can install VirtualBox on your Windows machine and have a linux virtual server for testing. Regards, Jie * Jie Gao <j....@sydney.edu.au> wrote: > Date: Fri, 10 Apr 2015 12:02:05 +1000 > From: Jie Gao <j....@sydney.edu.au> > To: Steve Hay <steve.m....@googlemail.com> > CC: "modperl@perl.apache.org" <modperl@perl.apache.org>, mod_perl Dev > <d...@perl.apache.org> > Subject: Re: Trunk: APR.so won't load > User-Agent: Mutt/1.5.21 (2010-09-15) > > Hi Steve > > I modified xs/Apache2/Module/Apache2__Module.h and replaced ap_strchr with > strchr before recompiling. I still got the same error message after that. > > I re-compiled apache without enabling the maintainer mode: > > --- > CC="gcc"; export CC > CFLAGS="-Wall -O3"; export CFLAGS > "./configure" \ > "--prefix=/usr/local/httpd-2.4.12" \ > "--with-included-apr" \ > "--with-mpm=worker" \ > "--enable-auth-digest" \ > "--enable-dav" \ > "--enable-expires" \ > "--enable-headers" \ > "--enable-proxy-html" \ > "--enable-xml2enc" \ > "--enable-info" \ > "--enable-mime-magic" \ > "--enable-nonportable-atomics" \ > "--enable-proxy" \ > "--enable-proxy-balancer" \ > "--enable-proxy-http" \ > "--enable-rewrite" \ > "--enable-so" \ > "--enable-ssl" \ > "--enable-unique-id" \ > "--enable-vhost-alias" \ > "--enable-modules=most" \ > "--enable-mods-shared=most" \ > "--enable-lbmethod-byrequests" \ > "--enable-lbmethod-bytraffic" \ > "--enable-lbmethod-bybusyness" \ > "--enable-lbmethod-heartbeat" \ > "--enable-heartmonitor" \ > "--enable-watchdog" \ > "--enable-ratelimit" \ > "--enable-ext-filter" \ > "--enable-request" \ > "CC=gcc" \ > "CFLAGS=-Wall -O3" \ > "$@" > --- > > and got mod_perl source code from Trunk again. mod_perl then fails "make > test" early on: > > --- > [warning] setting ulimit to allow core files > ulimit -c unlimited; /usr/local/bin/perl > /usr/local/src/mod_perl-2.0_20150310_0709/t/TEST -clean > APACHE_TEST_APXS= APACHE_TEST_PORT= APACHE_TEST_HTTPD= APACHE_TEST_GROUP= > APACHE_TEST_USER= \ > /usr/local/bin/perl -Iblib/arch -Iblib/lib \ > t/TEST -bugreport -verbose=0 > [warning] setting ulimit to allow core files > ulimit -c unlimited; /usr/local/bin/perl > /usr/local/src/mod_perl-2.0_20150310_0709/t/TEST -bugreport -verbose=0 > /usr/local/httpd-2.4.12/bin/httpd -d > /usr/local/src/mod_perl-2.0_20150310_0709/t -f > /usr/local/src/mod_perl-2.0_20150310_0709/t/conf/httpd.conf -D APACHE2 -D > PERL_USEITHREADS > using Apache/2.4.12 (worker MPM) > > waiting 300 seconds for server to start: .[Fri Apr 10 08:04:42.875770 2015] > [env:warn] [pid 19848:tid 140397405107968] AH01506: PassEnv variable > LD_LIBRARY_PATH was undefined > [Fri Apr 10 08:04:42.900978 2015] [perl:info] [pid 19848:tid 140397405107968] > 6 Apache2:: modules loaded > [Fri Apr 10 08:04:42.901033 2015] [perl:info] [pid 19848:tid 140397405107968] > 0 APR:: modules loaded > [Fri Apr 10 08:04:42.901092 2015] [perl:info] [pid 19848:tid 140397405107968] > base server + 32 vhosts ready to run tests > ............................................................................................................................................................................................................................................................................................................. > waiting 300 seconds for server to start: not ok > [ error] giving up after 301 secs. If you think that your system > is slow or overloaded try again with a longer timeout value. > by setting the environment variable APACHE_TEST_STARTUP_TIMEOUT > to a high value (e.g. 600) and repeat the last command. > > [ error] server failed to start! (please examine t/logs/error_log) > +--------------------------------------------------------+ > | Please file a bug report: http://perl.apache.org/bugs/ | > +--------------------------------------------------------+ > make: *** [run_tests] Error 1 > [08:09:44]jiegao@XXXX/usr/local/src/mod_perl-2.0_20150310_0709:822> ls -l > t/logs/error_log > -rw-r--r--. 1 jiegao jiegao 1243 Apr 10 08:04 t/logs/error_log > [08:10:01]jiegao@XXXX/usr/local/src/mod_perl-2.0_20150310_0709:823> cat !$ > jiegao@XXXX/usr/local/src/mod_perl-2.0_20150310_0709:823> cat t/logs/error_log > ******************************************************************************** > *** This is a test for Apache2::ServerUtil::server_shutdown_cleanup_register > *** > *** Following a line consisting only of * characters there should be a line > *** > *** containing > *** > *** "cleanup died: testing server_shutdown_cleanup_register". > *** > *** The next line should then read > *** > *** "done with server_shutdown_cleanup_register" > *** > ******************************************************************************** > Apache2::ServerUtil: cleanup died: testing server_shutdown_cleanup_register > *** done with server_shutdown_cleanup_register > *** > ******************************************************************************** > END in modperl_extra.pl, pid=19848 > END in modperl_extra.pl, pid=19848 > [Fri Apr 10 08:04:45.465468 2015] [proxy_balancer:emerg] [pid 19852:tid > 140397405107968] AH01177: Failed to lookup provider 'shm' for 'slotmem': is > mod_slotmem_shm loaded?? > [Fri Apr 10 08:04:45.465496 2015] [:emerg] [pid 19852:tid 140397405107968] > AH00020: Configuration Failed, exiting > --- > > Adding "--enable-maintainer-mode" and re-compliling apache, I could get "make > test" going as before. > > > > > Regards, > > Jie > > * Steve Hay <steve.m....@googlemail.com> wrote: > > > Date: Thu, 9 Apr 2015 18:27:51 +0100 > > From: Steve Hay <steve.m....@googlemail.com> > > To: Jie Gao <j....@sydney.edu.au> > > CC: "modperl@perl.apache.org" <modperl@perl.apache.org>, mod_perl Dev > > <d...@perl.apache.org> > > Subject: Re: Trunk: APR.so won't load > > > > Actually, I don't think there is anything stopping -DAP_DEBUG from > > coming through from the httpd config. The change that was made > > (r357052) just stopped mod_perl from adding that itself when > > MP_MAINTAINER is specified. > > > > But maybe we do need to filter out -DAP_DEBUG? > > Or else stop using ap_strchr() and just use strchr() directly? > > > > Could you try the latter, since it seems like an easy fix? -- Change > > the one instance of ap_strchr() in xs/Apache2/Module/Apache2__Module.h > > to be strchr() instead and then rebuild. Does that make the problem go > > away? > > > > > > On 9 April 2015 at 18:16, Steve Hay <steve.m....@googlemail.com> wrote: > > > Can you see where the -DAP_DEBUG comes from, e.g. by grepping > > > /usr/local/httpd-2.4.12/bin/ap* for AP_DEBUG? > > > > > > I think that symbol is not supposed to find its way into the mod_perl > > > build options, but it's obviously getting picked up somewhere and > > > slipping through... > > > > > > > > > On 9 April 2015 at 15:05, Jie Gao <j....@sydney.edu.au> wrote: > > >> Hi Steve > > >> > > >> httpd is configured with "--enable-maintainer-mode". > > >> > > >> For mod_perl: > > >> > > >> /usr/local/bin/perl Makefile.PL > > >> MP_APXS=/usr/local/httpd-2.4.12/bin/apxs > > >> MP_APR_CONFIG=/usr/local/httpd-2.4.12/bin/apr-1-config > > >> > > >> and I found the following line in the resultant Makefile: > > >> > > >> CCFLAGS = -D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv > > >> -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include > > >> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DMOD_PERL -DMP_COMPAT_1X > > >> -DLINUX -D_REENTRANT -D_GNU_SOURCE -DAP_DEBUG > > >> > > >> > > >> > > >> Regards, > > >> > > >> Jie > > >> > > >> * Steve Hay <steve.m....@googlemail.com> wrote: > > >> > > >>> Date: Thu, 9 Apr 2015 14:29:44 +0100 > > >>> From: Steve Hay <steve.m....@googlemail.com> > > >>> To: Jie Gao <j....@sydney.edu.au> > > >>> CC: "modperl@perl.apache.org" <modperl@perl.apache.org>, mod_perl Dev > > >>> <d...@perl.apache.org> > > >>> Subject: Re: Trunk: APR.so won't load > > >>> > > >>> Sorry for the slow reply. > > >>> > > >>> I cannot reproduce the problem here on Windows. Your example module > > >>> loads up fine with all the "use APR" lines uncommented. > > >>> > > >>> The build system (and the means by which APR::* should be loadable > > >>> without mod_perl.so being loaded) is different on Windows, but I did > > >>> notice this: > > >>> > > >>> ap_strchr seems to only be used in xs\Apache2\Module\Apache2__Module.h > > >>> but when I run Module.c through the preprocessor I find that ap_strchr > > >>> gets changed to strchr, and the latter is simply imported from the C > > >>> run-time library. > > >>> > > >>> I guess that's down to this code in httpd.h: > > >>> > > >>> #ifdef AP_DEBUG > > >>> > > >>> #undef strchr > > >>> # define strchr(s, c) ap_strchr(s,c) > > >>> #undef strrchr > > >>> # define strrchr(s, c) ap_strrchr(s,c) > > >>> #undef strstr > > >>> # define strstr(s, c) ap_strstr(s,c) > > >>> > > >>> #else > > >>> > > >>> /** use this instead of strchr */ > > >>> # define ap_strchr(s, c) strchr(s, c) > > >>> /** use this instead of strchr */ > > >>> # define ap_strchr_c(s, c) strchr(s, c) > > >>> /** use this instead of strrchr */ > > >>> # define ap_strrchr(s, c) strrchr(s, c) > > >>> /** use this instead of strrchr */ > > >>> # define ap_strrchr_c(s, c) strrchr(s, c) > > >>> /** use this instead of strrstr*/ > > >>> # define ap_strstr(s, c) strstr(s, c) > > >>> /** use this instead of strrstr*/ > > >>> # define ap_strstr_c(s, c) strstr(s, c) > > >>> > > >>> #endif > > >>> > > >>> so presumably I do not have AP_DEBUG defined for my build (even though > > >>> it was a debug build). > > >>> > > >>> It looks like AP_DEBUG should not be defined, even in maintainer mode, > > >>> according to an old Changes entry: > > >>> > > >>> remove -DAP_HAVE_DESIGNATED_INITIALIZER and -DAP_DEBUG from > > >>> MP_MAINTAINER mode to avoid collisions [Joe Orton] > > >>> > > >>> but do you somehow have AP_DEBUG defined somewhere, which causes the > > >>> replacement of ap_strchr with strchr to not happen for you? > > >>> > > >>> > > >>> On 27 March 2015 at 09:14, Jie Gao <j....@sydney.edu.au> wrote: > > >>> > Hi All > > >>> > > > >>> > I had some more time looking into this, and here's some info I can > > >>> > provide. > > >>> > > > >>> > -------------------------------------------------------------------------- > > >>> > > > >>> > # readelf -a > > >>> > /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/auto/APR/APR.so > > >>> > ELF Header: > > >>> > Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 > > >>> > Class: ELF64 > > >>> > Data: 2's complement, little endian > > >>> > Version: 1 (current) > > >>> > OS/ABI: UNIX - System V > > >>> > ABI Version: 0 > > >>> > Type: DYN (Shared object file) > > >>> > Machine: Advanced Micro Devices X86-64 > > >>> > Version: 0x1 > > >>> > Entry point address: 0x1cb0 > > >>> > Start of program headers: 64 (bytes into file) > > >>> > Start of section headers: 15480 (bytes into file) > > >>> > Flags: 0x0 > > >>> > Size of this header: 64 (bytes) > > >>> > Size of program headers: 56 (bytes) > > >>> > Number of program headers: 6 > > >>> > Size of section headers: 64 (bytes) > > >>> > Number of section headers: 29 > > >>> > Section header string table index: 26 > > >>> > > > >>> > Section Headers: > > >>> > [Nr] Name Type Address Offset > > >>> > Size EntSize Flags Link Info Align > > >>> > [ 0] NULL 0000000000000000 00000000 > > >>> > 0000000000000000 0000000000000000 0 0 0 > > >>> > > > >>> > [ Lines removed for clarity ] > > >>> > > > >>> > Dynamic section at offset 0x36f8 contains 27 entries: > > >>> > Tag Type Name/Value > > >>> > 0x0000000000000001 (NEEDED) Shared library: > > >>> > [libaprutil-1.so.0] > > >>> > 0x0000000000000001 (NEEDED) Shared library: > > >>> > [libexpat.so.1] > > >>> > 0x0000000000000001 (NEEDED) Shared library: > > >>> > [libapr-1.so.0] > > >>> > 0x0000000000000001 (NEEDED) Shared library: [librt.so.1] > > >>> > 0x0000000000000001 (NEEDED) Shared library: > > >>> > [libcrypt.so.1] > > >>> > 0x0000000000000001 (NEEDED) Shared library: > > >>> > [libpthread.so.0] > > >>> > 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] > > >>> > 0x000000000000000f (RPATH) Library rpath: > > >>> > [/usr/local/httpd-2.4.12/lib:/lib/../lib64] > > >>> > > > >>> > [ Lines removed for clarity ] > > >>> > > > >>> > Relocation section '.rela.plt' at offset 0x1300 contains 61 entries: > > >>> > Offset Info Type Sym. Value Sym. > > >>> > Name + Addend > > >>> > 000000203930 000200000007 R_X86_64_JUMP_SLO 0000000000000000 > > >>> > Perl_mg_get + 0 > > >>> > 000000203938 000300000007 R_X86_64_JUMP_SLO 0000000000000000 > > >>> > Perl_sv_setiv + 0 > > >>> > 000000203940 000400000007 R_X86_64_JUMP_SLO 0000000000000000 > > >>> > Perl_sv_bless + 0 > > >>> > 000000203948 000500000007 R_X86_64_JUMP_SLO 0000000000000000 > > >>> > apr_strerror + 0 > > >>> > 000000203950 000600000007 R_X86_64_JUMP_SLO 0000000000000000 > > >>> > Perl_require_pv + 0 > > >>> > 000000203958 000700000007 R_X86_64_JUMP_SLO 0000000000000000 > > >>> > Perl_warn + 0 > > >>> > 000000203960 000800000007 R_X86_64_JUMP_SLO 0000000000000000 > > >>> > PerlIO_printf + 0 > > >>> > 000000203968 000900000007 R_X86_64_JUMP_SLO 0000000000000000 > > >>> > ap_strchr + 0 > > >>> > > > >>> > [ Lines removed for clarity ] > > >>> > > > >>> > Symbol table '.dynsym' contains 86 entries: > > >>> > Num: Value Size Type Bind Vis Ndx Name > > >>> > 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND > > >>> > 1: 00000000000018b8 0 SECTION LOCAL DEFAULT 9 > > >>> > 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND Perl_mg_get > > >>> > 3: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND > > >>> > Perl_sv_setiv > > >>> > 4: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND > > >>> > Perl_sv_bless > > >>> > 5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND > > >>> > apr_strerror > > >>> > 6: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND > > >>> > Perl_require_pv > > >>> > 7: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND Perl_warn > > >>> > 8: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND > > >>> > PerlIO_printf > > >>> > 9: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND ap_strchr > > >>> > > > >>> > > > >>> > [ Lines removed for clarity ] > > >>> > > > >>> > Symbol table '.symtab' contains 143 entries: > > >>> > Num: Value Size Type Bind Vis Ndx Name > > >>> > 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND > > >>> > 1: 0000000000000190 0 SECTION LOCAL DEFAULT 1 > > >>> > > > >>> > [ Lines removed for clarity ] > > >>> > > > >>> > 69: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND ap_strchr > > >>> > > > >>> > > > >>> > [ Lines removed for clarity ] > > >>> > > > >>> > -------------------------------------------------------------------------- > > >>> > > > >>> > It seems that ap_strchr is not defined anywhere outside httpd, and > > >>> > not in > > >>> > any of the shared libs. This seems to create the problem when building > > >>> > a module with mod_perl or outside the mod_perl source. > > >>> > > > >>> > I find a somewhat related change by Stas in the past in the Changes > > >>> > file: > > >>> > > > >>> > bug reports generating code: [Stas] > > >>> > - add (apr|apu)-config linking info > > >>> > - show the full path to the config file used to get the data for the > > >>> > report > > >>> > > > >>> > The APR and APR::* family of modules can now be used without having > > >>> > to load mod_perl.so. On *nix, this is done by compiling the needed > > >>> > functions from the appropriate sources used to build mod_perl.so > > >>> > into APR.so, and then arranging for APR::* to 'use APR ()'. On Win32, > > >>> > a static library of needed functions is built, and APR/APR::* > > >>> > then link into this library [Stas, Joe Schaefer, Randy Kobes] > > >>> > > > >>> > > > >>> > I hope this helps resolve this issue in any way. > > >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > >>> > Regards, > > >>> > > > >>> > Jie > > >>> > > > >>> > * Jie Gao <j....@sydney.edu.au> wrote: > > >>> > > > >>> >> Date: Sun, 1 Mar 2015 17:30:45 +1100 > > >>> >> From: Jie Gao <j....@sydney.edu.au> > > >>> >> To: "modperl@perl.apache.org" <modperl@perl.apache.org>, mod_perl Dev > > >>> >> <d...@perl.apache.org> > > >>> >> Subject: Trunk: APR.so won't load > > >>> >> User-Agent: Mutt/1.5.21 (2010-09-15) > > >>> >> > > >>> >> I have got the source code from the trunk, "make test" mostly passed > > >>> >> except for > > >>> >> a threading issue, but I installed it anyway. > > >>> >> > > >>> >> Tried to load a test module, but it fails with the following error: > > >>> >> > > >>> >> # Error: Can't load > > >>> >> '/usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/auto/APR/APR.so' > > >>> >> for module APR: > > >>> >> /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/auto/APR/APR.so: > > >>> >> undefined symbol: ap_strchr at > > >>> >> /usr/local/lib/perl5/5.20.2/x86_64-linux-thread-multi/DynaLoader.pm > > >>> >> line 193. > > >>> >> # at > > >>> >> /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/APR/Table.pm > > >>> >> line 23. > > >>> >> > > >>> >> The following test module loads OK, but fails if I uncomment any of > > >>> >> the "use APR::*" lines: > > >>> >> > > >>> >> #------------------------------------------------------------------------- > > >>> >> > > >>> >> package mytest::mytestmodule; > > >>> >> > > >>> >> use 5.010001; > > >>> >> use strict; > > >>> >> use warnings; > > >>> >> use Carp; > > >>> >> $SIG{__DIE__} = \&Carp::confess; > > >>> >> > > >>> >> use mod_perl2; > > >>> >> use Apache2::Connection(); > > >>> >> use Apache2::RequestRec(); > > >>> >> use Apache2::SubRequest(); > > >>> >> use Apache2::Access(); > > >>> >> use Apache2::RequestUtil(); > > >>> >> use Apache2::Response(); > > >>> >> use Apache2::Log(); > > >>> >> use Apache2::Util(); > > >>> >> use Apache2::Const ("-compile", qw(:common :methods :satisfy :auth > > >>> >> MODE_READBYTES)); > > >>> >> use Apache2::URI(); > > >>> >> use Apache2::Filter (); > > >>> >> #use APR::Const ("-compile", qw(:common SUCCESS BLOCK_READ)); > > >>> >> use IO::Socket qw(SOCK_STREAM); > > >>> >> use Data::Dumper; > > >>> >> use AnyDBM_File (); > > >>> >> #use APR::Brigade (); > > >>> >> #use APR::Bucket (); > > >>> >> #use APR::Base64 (); > > >>> >> #use APR::Table (); > > >>> >> #use APR::URI (); > > >>> >> use URI::Escape::XS qw/uri_escape uri_unescape/; > > >>> >> #use Apache2::MPM(); > > >>> >> > > >>> >> our $VERSION = '1.0.1'; > > >>> >> > > >>> >> 1; > > >>> >> __END__ > > >>> >> > > >>> >> #------------------------------------------------------------------------- > > >>> >> > > >>> >> -------------8<---------- Start Bug Report ------------8<---------- > > >>> >> 1. Problem Description: > > >>> >> > > >>> >> [DESCRIBE THE PROBLEM HERE] > > >>> >> > > >>> >> 2. Used Components and their Configuration: > > >>> >> > > >>> >> *** mod_perl version 2.000009 > > >>> >> > > >>> >> *** using /usr/local/src/mod_perl-2.0/lib/Apache2/BuildConfig.pm > > >>> >> > > >>> >> *** Makefile.PL options: > > >>> >> MP_APR_CONFIG => /usr/local/httpd-2.4.12/bin/apr-1-config > > >>> >> MP_APR_LIB => aprext > > >>> >> MP_APXS => /usr/local/httpd-2.4.12/bin/apxs > > >>> >> MP_COMPAT_1X => 1 > > >>> >> MP_GENERATE_XS => 1 > > >>> >> MP_LIBNAME => mod_perl > > >>> >> MP_USE_DSO => 1 > > >>> >> > > >>> >> > > >>> >> *** /usr/local/httpd-2.4.12/bin/httpd -V > > >>> >> Server version: Apache/2.4.12 (Unix) > > >>> >> Server built: Feb 27 2015 20:05:23 > > >>> >> Server's Module Magic Number: 20120211:41 > > >>> >> Server loaded: APR 1.5.1, APR-UTIL 1.5.4 > > >>> >> Compiled using: APR 1.5.1, APR-UTIL 1.5.4 > > >>> >> Architecture: 64-bit > > >>> >> Server MPM: worker > > >>> >> threaded: yes (fixed thread count) > > >>> >> forked: yes (variable process count) > > >>> >> Server compiled with.... > > >>> >> -D APR_HAS_SENDFILE > > >>> >> -D APR_HAS_MMAP > > >>> >> -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) > > >>> >> -D APR_USE_SYSVSEM_SERIALIZE > > >>> >> -D APR_USE_PTHREAD_SERIALIZE > > >>> >> -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT > > >>> >> -D APR_HAS_OTHER_CHILD > > >>> >> -D AP_HAVE_RELIABLE_PIPED_LOGS > > >>> >> -D DYNAMIC_MODULE_LIMIT=256 > > >>> >> -D HTTPD_ROOT="/usr/local/httpd-2.4.12" > > >>> >> -D SUEXEC_BIN="/usr/local/httpd-2.4.12/bin/suexec" > > >>> >> > > >>> >> > > >>> >> *** /usr/bin/ldd /usr/local/httpd-2.4.12/bin/httpd > > >>> >> linux-vdso.so.1 => (0x00007fffcefff000) > > >>> >> libpcre.so.0 => /lib64/libpcre.so.0 (0x000000327f400000) > > >>> >> libaprutil-1.so.0 => > > >>> >> /usr/local/httpd-2.4.12/lib/libaprutil-1.so.0 (0x00007f3ba864c000) > > >>> >> libexpat.so.1 => /lib64/libexpat.so.1 (0x0000003281c00000) > > >>> >> libapr-1.so.0 => /usr/local/httpd-2.4.12/lib/libapr-1.so.0 > > >>> >> (0x00007f3ba8417000) > > >>> >> librt.so.1 => /lib64/librt.so.1 (0x000000327dc00000) > > >>> >> libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00000036c2400000) > > >>> >> libpthread.so.0 => /lib64/libpthread.so.0 > > >>> >> (0x000000327d400000) > > >>> >> libc.so.6 => /lib64/libc.so.6 (0x000000327d000000) > > >>> >> /lib64/ld-linux-x86-64.so.2 (0x000000327cc00000) > > >>> >> libfreebl3.so => /lib64/libfreebl3.so (0x00000036c2800000) > > >>> >> libdl.so.2 => /lib64/libdl.so.2 (0x000000327d800000) > > >>> >> > > >>> >> > > >>> >> *** (apr|apu)-config linking info > > >>> >> > > >>> >> -L/usr/local/httpd-2.4.12/lib -laprutil-1 -lexpat > > >>> >> -L/usr/local/httpd-2.4.12/lib -lapr-1 -lrt -lcrypt -lpthread > > >>> >> > > >>> >> > > >>> >> > > >>> >> *** /usr/local/bin/perl -V > > >>> >> Summary of my perl5 (revision 5 version 20 subversion 2) > > >>> >> configuration: > > >>> >> > > >>> >> Platform: > > >>> >> osname=linux, osvers=2.6.32-504.8.1.el6.x86_64, > > >>> >> archname=x86_64-linux-thread-multi > > >>> >> uname='linux xxx.xxx.xxx.xx 2.6.32-504.8.1.el6.x86_64 #1 smp fri > > >>> >> dec 19 12:09:25 est 2014 x86_64 x86_64 x86_64 gnulinux ' > > >>> >> config_args='-Dusethreads -Dprefix=/usr/local -des -A > > >>> >> ccflags=-fPIC' > > >>> >> hint=recommended, useposix=true, d_sigaction=define > > >>> >> useithreads=define, usemultiplicity=define > > >>> >> use64bitint=define, use64bitall=define, uselongdouble=undef > > >>> >> usemymalloc=n, bincompat5005=undef > > >>> >> Compiler: > > >>> >> cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv > > >>> >> -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include > > >>> >> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', > > >>> >> optimize='-O2', > > >>> >> cppflags='-D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv > > >>> >> -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include' > > >>> >> ccversion='', gccversion='4.4.7 20120313 (Red Hat 4.4.7-11)', > > >>> >> gccosandvers='' > > >>> >> intsize=4, longsize=8, ptrsize=8, doublesize=8, > > >>> >> byteorder=12345678 > > >>> >> d_longlong=define, longlongsize=8, d_longdbl=define, > > >>> >> longdblsize=16 > > >>> >> ivtype='long', ivsize=8, nvtype='double', nvsize=8, > > >>> >> Off_t='off_t', lseeksize=8 > > >>> >> alignbytes=8, prototype=define > > >>> >> Linker and Libraries: > > >>> >> ld='cc', ldflags =' -fstack-protector -L/usr/local/lib' > > >>> >> libpth=/usr/local/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 > > >>> >> /lib /lib64 /usr/lib64 /usr/local/lib64 > > >>> >> libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc > > >>> >> perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc > > >>> >> libc=libc-2.12.so, so=so, useshrplib=false, libperl=libperl.a > > >>> >> gnulibc_version='2.12' > > >>> >> Dynamic Linking: > > >>> >> dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' > > >>> >> cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib > > >>> >> -fstack-protector' > > >>> >> > > >>> >> > > >>> >> Characteristics of this binary (from libperl): > > >>> >> Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS > > >>> >> PERL_DONT_CREATE_GVSV > > >>> >> PERL_HASH_FUNC_ONE_AT_A_TIME_HARD > > >>> >> PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP > > >>> >> PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV > > >>> >> USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS > > >>> >> USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE > > >>> >> USE_LOCALE_CTYPE USE_LOCALE_NUMERIC > > >>> >> USE_PERLIO > > >>> >> USE_PERL_ATOF USE_REENTRANT_API > > >>> >> Built under linux > > >>> >> Compiled at Feb 25 2015 15:58:55 > > >>> >> %ENV: > > >>> >> PERL_LWP_USE_HTTP_10="1" > > >>> >> @INC: > > >>> >> /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi > > >>> >> /usr/local/lib/perl5/site_perl/5.20.2 > > >>> >> /usr/local/lib/perl5/5.20.2/x86_64-linux-thread-multi > > >>> >> /usr/local/lib/perl5/5.20.2 > > >>> >> /usr/local/lib/perl5/site_perl/5.18.2 > > >>> >> /usr/local/lib/perl5/site_perl/5.18.0 > > >>> >> /usr/local/lib/perl5/site_perl > > >>> >> . > > >>> >> > > >>> >> *** Packages of interest status: > > >>> >> > > >>> >> Apache2 : - > > >>> >> Apache2::Request : - > > >>> >> CGI : 3.65 > > >>> >> ExtUtils::MakeMaker: 6.98 > > >>> >> LWP : 5.837 > > >>> >> mod_perl : - > > >>> >> mod_perl2 : 2.000009 > > >>> >> > > >>> >> > > >>> >> 3. This is the core dump trace: (if you get a core dump): > > >>> >> > > >>> >> [CORE TRACE COMES HERE] > > >>> >> > > >>> >> This report was generated by bin/mp2bug on Sun Mar 1 06:21:21 2015 > > >>> >> GMT. > > >>> >> > > >>> >> -------------8<---------- End Bug Report --------------8<---------- > > >>> >> > > >>> >> # ls -al /usr/local/httpd-2.4.12/lib/ > > >>> >> total 4108 > > >>> >> drwxr-xr-x. 4 root root 4096 Feb 27 20:07 . > > >>> >> drwxr-xr-x. 15 root root 4096 Feb 27 20:07 .. > > >>> >> -rw-r--r--. 1 root root 9262 Feb 27 20:07 apr.exp > > >>> >> drwxr-xr-x. 2 root root 4096 Feb 27 20:07 apr-util-1 > > >>> >> -rw-r--r--. 1 root root 5272 Feb 27 20:07 aprutil.exp > > >>> >> -rw-r--r--. 1 root root 1685642 Feb 27 20:07 libapr-1.a > > >>> >> -rwxr-xr-x. 1 root root 969 Feb 27 20:07 libapr-1.la > > >>> >> lrwxrwxrwx. 1 root root 17 Feb 27 20:07 libapr-1.so -> > > >>> >> libapr-1.so.0.5.1 > > >>> >> lrwxrwxrwx. 1 root root 17 Feb 27 20:07 libapr-1.so.0 -> > > >>> >> libapr-1.so.0.5.1 > > >>> >> -rwxr-xr-x. 1 root root 858051 Feb 27 20:07 libapr-1.so.0.5.1 > > >>> >> -rw-r--r--. 1 root root 1022024 Feb 27 20:07 libaprutil-1.a > > >>> >> -rwxr-xr-x. 1 root root 1045 Feb 27 20:07 libaprutil-1.la > > >>> >> lrwxrwxrwx. 1 root root 21 Feb 27 20:07 libaprutil-1.so -> > > >>> >> libaprutil-1.so.0.5.4 > > >>> >> lrwxrwxrwx. 1 root root 21 Feb 27 20:07 libaprutil-1.so.0 -> > > >>> >> libaprutil-1.so.0.5.4 > > >>> >> -rwxr-xr-x. 1 root root 589222 Feb 27 20:07 libaprutil-1.so.0.5.4 > > >>> >> drwxr-xr-x. 2 root root 4096 Feb 27 20:07 pkgconfig > > >>> >> > > >>> >> > > >>> >> > > >>> >> > > >>> >> > > >>> >> > > >>> >> Regards, > > >>> >> > > >>> >> > > >>> >> Jie. > > >>> >> > > >>> >> > > >>> >>