Re: Trunk: APR.so won't load
Excellent! I guess that's fixed it then, so I will apply that patch. Many thanks for testing. On 14 April 2015 at 08:37, Jie Gao wrote: > Hi Steve > > Yes, I applied the AP_DEBUG patch. > > Regards, > > Jie > > * Steve Hay wrote: > >> Date: Tue, 14 Apr 2015 08:32:29 +0100 >> From: Steve Hay >> To: Jie Gao >> CC: "modperl@perl.apache.org" , mod_perl Dev >> >> Subject: Re: Trunk: APR.so won't load >> >> That's great news! Was that with the AP_DEBUG patch to >> lib/Apache2/Build.pm that I posted last time, or did it just work >> without that anyway? >> >> On 14 April 2015 at 05:13, Jie Gao wrote: >> > Hi Steve >> > >> > I got the src from trunk again and rebuilt httpd with >> > "--enable-maintainer-mode", just as you requested, and "make test" >> > passed with my module! >> > >> > Didn't have to fiddle with httpd.conf as slotmem_shm_module wasn't >> > commented out this time for some reason. >> > >> > Still had this when running make test with mod_perl: >> > >> > 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 >> > >> > Thanks very much for your help! >> > >> > >> > Regards, >> > >> > Jie >> > >> > * Steve Hay wrote: >> > >> >> Date: Mon, 13 Apr 2015 09:18:50 +0100 >> >> From: Steve Hay >> >> To: Jie Gao >> >> CC: "modperl@perl.apache.org" , mod_perl Dev >> >> >> >> Subject: Re: Trunk: APR.so won't load >> >> >> >> Thanks for the extra information. >> >> >> >> I think the build with --enable-maintainer-mode succeeded simply >> >> because it doesn't include -DAP_DEBUG; the ap_strchr change was >> >> probably not related. >> >> >> >> It would be nice to allow building mod_perl with a httpd built with >> >> --enable-maintainer-mode, and in the light of Joe's comment I think we >> >> simply need to remove -DAP_DEBUG from the build flags. >> >> >> >> So please could you try rebuilding again using a clean mod_perl source >> >> tree (i.e. revert the ap_strchr change) but with the patch below >> >> applied to it, and using an --enable-maintainer-mode httpd? >> >> >> >> You may still have to fiddle with slotmem_shm_module as before (sorry, >> >> I do not know what the problem is there) and I wouldn't expect the two >> >> test failures to go away either, but I'm hopeful that this build might >> >> at least work. >> >> >> >> Index: lib/Apache2/Build.pm >> >> === >> >> --- lib/Apache2/Build.pm(revision 1673126) >> >> +++ lib/Apache2/Build.pm(working copy) >> >> @@ -616,6 +616,9 @@ >> >> my $extra_cppflags = $self->apxs_extra_cppflags; >> >> $ccopts .= " " . $extra_cppflags; >> >> >> >> +# Make sure the evil AP_DEBUG is not defined when building mod_perl >> >> +$ccopts =~ s/ ?-DAP_DEBUG\b//; >> >> + >> >> $ccopts; >> >> } >> >> >> >> >> >> On 13 April 2015 at 03:37, Jie Gao wrote: >> >> > 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-mai
Re: Trunk: APR.so won't load
Hi Steve Yes, I applied the AP_DEBUG patch. Regards, Jie * Steve Hay wrote: > Date: Tue, 14 Apr 2015 08:32:29 +0100 > From: Steve Hay > To: Jie Gao > CC: "modperl@perl.apache.org" , mod_perl Dev > > Subject: Re: Trunk: APR.so won't load > > That's great news! Was that with the AP_DEBUG patch to > lib/Apache2/Build.pm that I posted last time, or did it just work > without that anyway? > > On 14 April 2015 at 05:13, Jie Gao wrote: > > Hi Steve > > > > I got the src from trunk again and rebuilt httpd with > > "--enable-maintainer-mode", just as you requested, and "make test" > > passed with my module! > > > > Didn't have to fiddle with httpd.conf as slotmem_shm_module wasn't > > commented out this time for some reason. > > > > Still had this when running make test with mod_perl: > > > > 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 > > > > Thanks very much for your help! > > > > > > Regards, > > > > Jie > > > > * Steve Hay wrote: > > > >> Date: Mon, 13 Apr 2015 09:18:50 +0100 > >> From: Steve Hay > >> To: Jie Gao > >> CC: "modperl@perl.apache.org" , mod_perl Dev > >> > >> Subject: Re: Trunk: APR.so won't load > >> > >> Thanks for the extra information. > >> > >> I think the build with --enable-maintainer-mode succeeded simply > >> because it doesn't include -DAP_DEBUG; the ap_strchr change was > >> probably not related. > >> > >> It would be nice to allow building mod_perl with a httpd built with > >> --enable-maintainer-mode, and in the light of Joe's comment I think we > >> simply need to remove -DAP_DEBUG from the build flags. > >> > >> So please could you try rebuilding again using a clean mod_perl source > >> tree (i.e. revert the ap_strchr change) but with the patch below > >> applied to it, and using an --enable-maintainer-mode httpd? > >> > >> You may still have to fiddle with slotmem_shm_module as before (sorry, > >> I do not know what the problem is there) and I wouldn't expect the two > >> test failures to go away either, but I'm hopeful that this build might > >> at least work. > >> > >> Index: lib/Apache2/Build.pm > >> === > >> --- lib/Apache2/Build.pm(revision 1673126) > >> +++ lib/Apache2/Build.pm(working copy) > >> @@ -616,6 +616,9 @@ > >> my $extra_cppflags = $self->apxs_extra_cppflags; > >> $ccopts .= " " . $extra_cppflags; > >> > >> +# Make sure the evil AP_DEBUG is not defined when building mod_perl > >> +$ccopts =~ s/ ?-DAP_DEBUG\b//; > >> + > >> $ccopts; > >> } > >> > >> > >> On 13 April 2015 at 03:37, Jie Gao wrote: > >> > 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 > >> > # Faile
Re: Trunk: APR.so won't load
That's great news! Was that with the AP_DEBUG patch to lib/Apache2/Build.pm that I posted last time, or did it just work without that anyway? On 14 April 2015 at 05:13, Jie Gao wrote: > Hi Steve > > I got the src from trunk again and rebuilt httpd with > "--enable-maintainer-mode", just as you requested, and "make test" > passed with my module! > > Didn't have to fiddle with httpd.conf as slotmem_shm_module wasn't > commented out this time for some reason. > > Still had this when running make test with mod_perl: > > 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 > > Thanks very much for your help! > > > Regards, > > Jie > > * Steve Hay wrote: > >> Date: Mon, 13 Apr 2015 09:18:50 +0100 >> From: Steve Hay >> To: Jie Gao >> CC: "modperl@perl.apache.org" , mod_perl Dev >> >> Subject: Re: Trunk: APR.so won't load >> >> Thanks for the extra information. >> >> I think the build with --enable-maintainer-mode succeeded simply >> because it doesn't include -DAP_DEBUG; the ap_strchr change was >> probably not related. >> >> It would be nice to allow building mod_perl with a httpd built with >> --enable-maintainer-mode, and in the light of Joe's comment I think we >> simply need to remove -DAP_DEBUG from the build flags. >> >> So please could you try rebuilding again using a clean mod_perl source >> tree (i.e. revert the ap_strchr change) but with the patch below >> applied to it, and using an --enable-maintainer-mode httpd? >> >> You may still have to fiddle with slotmem_shm_module as before (sorry, >> I do not know what the problem is there) and I wouldn't expect the two >> test failures to go away either, but I'm hopeful that this build might >> at least work. >> >> Index: lib/Apache2/Build.pm >> === >> --- lib/Apache2/Build.pm(revision 1673126) >> +++ lib/Apache2/Build.pm(working copy) >> @@ -616,6 +616,9 @@ >> my $extra_cppflags = $self->apxs_extra_cppflags; >> $ccopts .= " " . $extra_cppflags; >> >> +# Make sure the evil AP_DEBUG is not defined when building mod_perl >> +$ccopts =~ s/ ?-DAP_DEBUG\b//; >> + >> $ccopts; >> } >> >> >> On 13 April 2015 at 03:37, Jie Gao wrote: >> > 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@/usr/local/src/mod_perl:975> rm t/logs/error_log >> > jiegao@/usr/
Re: Trunk: APR.so won't load
Hi Steve I got the src from trunk again and rebuilt httpd with "--enable-maintainer-mode", just as you requested, and "make test" passed with my module! Didn't have to fiddle with httpd.conf as slotmem_shm_module wasn't commented out this time for some reason. Still had this when running make test with mod_perl: 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 Thanks very much for your help! Regards, Jie * Steve Hay wrote: > Date: Mon, 13 Apr 2015 09:18:50 +0100 > From: Steve Hay > To: Jie Gao > CC: "modperl@perl.apache.org" , mod_perl Dev > > Subject: Re: Trunk: APR.so won't load > > Thanks for the extra information. > > I think the build with --enable-maintainer-mode succeeded simply > because it doesn't include -DAP_DEBUG; the ap_strchr change was > probably not related. > > It would be nice to allow building mod_perl with a httpd built with > --enable-maintainer-mode, and in the light of Joe's comment I think we > simply need to remove -DAP_DEBUG from the build flags. > > So please could you try rebuilding again using a clean mod_perl source > tree (i.e. revert the ap_strchr change) but with the patch below > applied to it, and using an --enable-maintainer-mode httpd? > > You may still have to fiddle with slotmem_shm_module as before (sorry, > I do not know what the problem is there) and I wouldn't expect the two > test failures to go away either, but I'm hopeful that this build might > at least work. > > Index: lib/Apache2/Build.pm > === > --- lib/Apache2/Build.pm(revision 1673126) > +++ lib/Apache2/Build.pm(working copy) > @@ -616,6 +616,9 @@ > my $extra_cppflags = $self->apxs_extra_cppflags; > $ccopts .= " " . $extra_cppflags; > > +# Make sure the evil AP_DEBUG is not defined when building mod_perl > +$ccopts =~ s/ ?-DAP_DEBUG\b//; > + > $ccopts; > } > > > On 13 April 2015 at 03:37, Jie Gao wrote: > > 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@/usr/local/src/mod_perl:975> rm t/logs/error_log > > jiegao@/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.29
Re: Trunk: APR.so won't load
er : 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 : 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 : 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 : 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" > *** > >
Re: Trunk: APR.so won't load
*** *** 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 wrote: > Date: Fri, 10 Apr 2015 12:02:05 +1000 > From: Jie Gao > To: Steve Hay > CC: "modperl@perl.apache.org" , mod_perl Dev > > 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 >
Re: Trunk: APR.so won't load
r_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 wrote: > Date: Thu, 9 Apr 2015 18:27:51 +0100 > From: Steve Hay > To: Jie Gao > CC: "modperl@perl.apache.org" , mod_perl Dev > > 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 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 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 wrote: > >> > >>> Date: Thu, 9 Apr 2015 14:29:44 +0100 > >>> From: Steve Hay > >>> To: Jie Gao > >>> CC: "modperl@perl.apache.org" , mod_perl Dev > >>> > >>> 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 t
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 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 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 wrote: >> >>> Date: Thu, 9 Apr 2015 14:29:44 +0100 >>> From: Steve Hay >>> To: Jie Gao >>> CC: "modperl@perl.apache.org" , mod_perl Dev >>> >>> 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 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:
Re: Trunk: APR.so won't load
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 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 wrote: > >> Date: Thu, 9 Apr 2015 14:29:44 +0100 >> From: Steve Hay >> To: Jie Gao >> CC: "modperl@perl.apache.org" , mod_perl Dev >> >> 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 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 &
Re: Trunk: APR.so won't load
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 wrote: > Date: Thu, 9 Apr 2015 14:29:44 +0100 > From: Steve Hay > To: Jie Gao > CC: "modperl@perl.apache.org" , mod_perl Dev > > 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 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 > > 0 0 0 > > > > [ Lines removed for clarity ] > > > > Dynamic section at offset 0x36f8 contains 27 entries: > > TagType Name/Value > > 0x0001 (NEEDED) Shared library: [libaprutil-1.so.0] > > 0x0001 (NEEDED) Shared library: [libexpat.so.1] &g
Re: Trunk: APR.so won't load
007 R_X86_64_JUMP_SLO PerlIO_printf + > 0 > 00203968 00090007 R_X86_64_JUMP_SLO ap_strchr + 0 > > [ Lines removed for clarity ] > > Symbol table '.dynsym' contains 86 entries: >Num:Value Size TypeBind Vis Ndx Name > 0: 0 NOTYPE LOCAL DEFAULT UND > 1: 18b8 0 SECTION LOCAL DEFAULT9 > 2: 0 NOTYPE GLOBAL DEFAULT UND Perl_mg_get > 3: 0 NOTYPE GLOBAL DEFAULT UND Perl_sv_setiv > 4: 0 NOTYPE GLOBAL DEFAULT UND Perl_sv_bless > 5: 0 FUNCGLOBAL DEFAULT UND apr_strerror > 6: 0 NOTYPE GLOBAL DEFAULT UND Perl_require_pv > 7: 0 NOTYPE GLOBAL DEFAULT UND Perl_warn > 8: 0 NOTYPE GLOBAL DEFAULT UND PerlIO_printf > 9: 0 NOTYPE GLOBAL DEFAULT UND ap_strchr > > > [ Lines removed for clarity ] > > Symbol table '.symtab' contains 143 entries: >Num:Value Size TypeBind Vis Ndx Name > 0: 0 NOTYPE LOCAL DEFAULT UND > 1: 0190 0 SECTION LOCAL DEFAULT1 > > [ Lines removed for clarity ] > > 69: 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 wrote: > >> Date: Sun, 1 Mar 2015 17:30:45 +1100 >> From: Jie Gao >> To: "modperl@perl.apache.org" , mod_perl Dev >> >> 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()
Re: Trunk: APR.so won't load
priate 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 wrote: > Date: Sun, 1 Mar 2015 17:30:45 +1100 > From: Jie Gao > To: "modperl@perl.apache.org" , mod_perl Dev > > 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.09 > > *** 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 => (0x7fffcefff000) > libpcre.so.0 => /lib64/libpcre.so.0 (0x00327f40) > libaprutil-1.so.0 => /usr/local/httpd-2.4.12/lib/libaprutil-1.so.0 > (0x7f3ba864c000) > libexpat.so.1 => /lib64/libexpat.so.1 (0x003281c0) > libapr-1.so.0 => /usr/local/httpd-2.4.12/lib/libapr-1.so.0 > (0x7f3ba8417000) > librt.so.1 => /lib64/librt.so.1 (0x00327dc0) > libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0036c240) > libpthread.so.0 => /lib64/libpthread.so.0 (0x00327d40) > libc.so.6 => /lib64/libc.so.6 (0x00327d00) > /lib64/ld-linux-x86-64.so.2 (0x00327cc0) > libf
Trunk: APR.so won't load
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.09 *** 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 => (0x7fffcefff000) libpcre.so.0 => /lib64/libpcre.so.0 (0x00327f40) libaprutil-1.so.0 => /usr/local/httpd-2.4.12/lib/libaprutil-1.so.0 (0x7f3ba864c000) libexpat.so.1 => /lib64/libexpat.so.1 (0x003281c0) libapr-1.so.0 => /usr/local/httpd-2.4.12/lib/libapr-1.so.0 (0x7f3ba8417000) librt.so.1 => /lib64/librt.so.1 (0x00327dc0) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0036c240) libpthread.so.0 => /lib64/libpthread.so.0 (0x00327d40) libc.so.6 => /lib64/libc.so.6 (0x00327d00) /lib64/ld-linux-x86-64.so.2 (0x00327cc0) libfreebl3.so => /lib64/libfreebl3.so (0x0036c280) libdl.so.2 => /lib64/libdl.so.2 (0x00327d80) *** (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='' in