Re: [mp2] make test errors
On Fri, Nov 14, 2008 at 9:48 PM, [EMAIL PROTECTED] wrote: -8-- Start Bug Report 8-- 1. Problem Description: Per suggestion made in this forum, I gave up on static build and am building dynamic. Now I get 2 errors in make test, plus undef errors during 'sudo make install' Peter Chen saw these errors on Solaris, and I saw them yesterday on Fedora Core 8. It is specific to Apache 2.2.10. I looked at it a bit but don't know what a fix entails. I haven't tested with 2.2.9, but suggest grabbing an earlier version of Apache that doesn't fail that test if your application exhibits authentication problems. t/hooks/authen_basic1..4 # Running under perl version 5.008008 for freebsd # Current time local: Fri Nov 14 21:00:32 2008 # Current time GMT: Sat Nov 15 05:00:32 2008 # Using Test.pm version 1.25 # Using Apache/Test.pm version 1.31 ok 1 ok 2 ok 3 # Failed test 4 in t/hooks/authen_basic.t at line 26 not ok 4 FAILED test 4 Failed 1/4 tests, 75.00% okay t/hooks/authz...1..4 # Running under perl version 5.008008 for freebsd # Current time local: Fri Nov 14 21:00:33 2008 # Current time GMT: Sat Nov 15 05:00:33 2008 # Using Test.pm version 1.25 # Using Apache/Test.pm version 1.31 ok 1 ok 2 ok 3 # Failed test 4 in t/hooks/authz.t at line 19 not ok 4 FAILED test 4 --- also, in the subsequent 'sudo make install', every module was tagged with: Use of uninitialized value in length at /usr/local/lib/perl5/5.8.8/ExtUtils/Command/MM.pm line 134. So I changed said line 134 from if (length $options{perm_rw}) { to if ($options{perm_rw}) { Which made a subsequent retry of 'sudo make install' go without error messages --- 2. Used Components and their Configuration: *** mod_perl version 2.04 *** using /build/mod_perl-2.0.4/lib/Apache2/BuildConfig.pm *** Makefile.PL options: MP_APR_LIB = aprext MP_APXS= /usr/local/apache2.2.10/bin/apxs MP_COMPAT_1X = 1 MP_DEBUG = 1 MP_GENERATE_XS = 1 MP_LIBNAME = mod_perl MP_TRACE = 1 MP_USE_DSO = 1 *** /usr/local/apache2.2.10/bin/httpd -V Server version: Apache/2.2.10 (Unix) Server built: Nov 14 2008 19:37:16 Server's Module Magic Number: 20051115:18 Server loaded: APR 1.3.3, APR-Util 1.3.4 Compiled using: APR 1.3.3, APR-Util 1.3.4 Architecture: 32-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with -D APACHE_MPM_DIR=server/mpm/prefork -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_FLOCK_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=128 -D HTTPD_ROOT=/usr/local/apache2.2.10 -D SUEXEC_BIN=/usr/local/apache2.2.10/bin/suexec -D DEFAULT_PIDLOG=logs/httpd.pid -D DEFAULT_SCOREBOARD=logs/apache_runtime_status -D DEFAULT_LOCKFILE=logs/accept.lock -D DEFAULT_ERRORLOG=logs/error_log -D AP_TYPES_CONFIG_FILE=conf/mime.types -D SERVER_CONFIG_FILE=conf/httpd.conf *** /usr/bin/ldd /usr/local/apache2.2.10/bin/httpd /usr/local/apache2.2.10/bin/httpd: libz.so.3 = /lib/libz.so.3 (0x28208000) libm.so.4 = /lib/libm.so.4 (0x28219000) libpcre.so.0 = /usr/local/lib/libpcre.so.0 (0x2822f000) libaprutil-1.so.3 = /usr/local/apache2.2.10/lib/libaprutil-1.so.3 (0x2825b000) libexpat.so.6 = /usr/local/lib/libexpat.so.6 (0x2827a000) libapr-1.so.3 = /usr/local/apache2.2.10/lib/libapr-1.so.3 (0x2829b000) libcrypt.so.3 = /lib/libcrypt.so.3 (0x282c3000) libpthread.so.2 = /lib/libpthread.so.2 (0x282db000) libc.so.6 = /lib/libc.so.6 (0x282ff000) *** (apr|apu)-config linking info -L/usr/local/apache2.2.10/lib -laprutil-1 -lexpat -L/usr/local/lib -L/usr/local/apache2.2.10/lib -lapr-1 -lcrypt -lpthread *** /usr/local/bin/perl5.8.8 -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=freebsd, osvers=6.3-release, archname=i386-freebsd uname='freebsd sakomina.securesites.net 6.3-release freebsd 6.3-release #2: wed jun 25 14:30:46 mdt 2008 [EMAIL PROTECTED]:usrsrcsysi386compilevkern i386 ' config_args='-Doptimize=-g -Dusedevel' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include', optimize='-g', cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement
[mp2] make test errors
-8-- Start Bug Report 8-- 1. Problem Description: Per suggestion made in this forum, I gave up on static build and am building dynamic. Now I get 2 errors in make test, plus undef errors during 'sudo make install' t/hooks/authen_basic1..4 # Running under perl version 5.008008 for freebsd # Current time local: Fri Nov 14 21:00:32 2008 # Current time GMT: Sat Nov 15 05:00:32 2008 # Using Test.pm version 1.25 # Using Apache/Test.pm version 1.31 ok 1 ok 2 ok 3 # Failed test 4 in t/hooks/authen_basic.t at line 26 not ok 4 FAILED test 4 Failed 1/4 tests, 75.00% okay t/hooks/authz...1..4 # Running under perl version 5.008008 for freebsd # Current time local: Fri Nov 14 21:00:33 2008 # Current time GMT: Sat Nov 15 05:00:33 2008 # Using Test.pm version 1.25 # Using Apache/Test.pm version 1.31 ok 1 ok 2 ok 3 # Failed test 4 in t/hooks/authz.t at line 19 not ok 4 FAILED test 4 --- also, in the subsequent 'sudo make install', every module was tagged with: Use of uninitialized value in length at /usr/local/lib/perl5/5.8.8/ ExtUtils/Command/MM.pm line 134. So I changed said line 134 from if (length $options{perm_rw}) { to if ($options{perm_rw}) { Which made a subsequent retry of 'sudo make install' go without error messages --- 2. Used Components and their Configuration: *** mod_perl version 2.04 *** using /build/mod_perl-2.0.4/lib/Apache2/BuildConfig.pm *** Makefile.PL options: MP_APR_LIB = aprext MP_APXS= /usr/local/apache2.2.10/bin/apxs MP_COMPAT_1X = 1 MP_DEBUG = 1 MP_GENERATE_XS = 1 MP_LIBNAME = mod_perl MP_TRACE = 1 MP_USE_DSO = 1 *** /usr/local/apache2.2.10/bin/httpd -V Server version: Apache/2.2.10 (Unix) Server built: Nov 14 2008 19:37:16 Server's Module Magic Number: 20051115:18 Server loaded: APR 1.3.3, APR-Util 1.3.4 Compiled using: APR 1.3.3, APR-Util 1.3.4 Architecture: 32-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with -D APACHE_MPM_DIR=server/mpm/prefork -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_FLOCK_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=128 -D HTTPD_ROOT=/usr/local/apache2.2.10 -D SUEXEC_BIN=/usr/local/apache2.2.10/bin/suexec -D DEFAULT_PIDLOG=logs/httpd.pid -D DEFAULT_SCOREBOARD=logs/apache_runtime_status -D DEFAULT_LOCKFILE=logs/accept.lock -D DEFAULT_ERRORLOG=logs/error_log -D AP_TYPES_CONFIG_FILE=conf/mime.types -D SERVER_CONFIG_FILE=conf/httpd.conf *** /usr/bin/ldd /usr/local/apache2.2.10/bin/httpd /usr/local/apache2.2.10/bin/httpd: libz.so.3 = /lib/libz.so.3 (0x28208000) libm.so.4 = /lib/libm.so.4 (0x28219000) libpcre.so.0 = /usr/local/lib/libpcre.so.0 (0x2822f000) libaprutil-1.so.3 = /usr/local/apache2.2.10/lib/libaprutil-1.so.3 (0x2825b000) libexpat.so.6 = /usr/local/lib/libexpat.so.6 (0x2827a000) libapr-1.so.3 = /usr/local/apache2.2.10/lib/libapr-1.so.3 (0x2829b000) libcrypt.so.3 = /lib/libcrypt.so.3 (0x282c3000) libpthread.so.2 = /lib/libpthread.so.2 (0x282db000) libc.so.6 = /lib/libc.so.6 (0x282ff000) *** (apr|apu)-config linking info -L/usr/local/apache2.2.10/lib -laprutil-1 -lexpat -L/usr/local/lib -L/usr/local/apache2.2.10/lib -lapr-1 -lcrypt -lpthread *** /usr/local/bin/perl5.8.8 -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=freebsd, osvers=6.3-release, archname=i386-freebsd uname='freebsd sakomina.securesites.net 6.3-release freebsd 6.3- release #2: wed jun 25 14:30:46 mdt 2008 [EMAIL PROTECTED]:usrsrcsysi386compilevkern i386 ' config_args='-Doptimize=-g -Dusedevel' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H - DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement - I/usr/local/include', optimize='-g', cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DDEBUGGING -fno- strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/ include' ccversion='', gccversion='3.4.6 [FreeBSD] 20060305', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags ='-Wl,-E -L/usr/local/lib' libpth=/usr/lib
[mp2] make test errors with apache 2.2.2
Failed Test Stat Wstat Total Fail Failed List of Failed --- t/apache/content_length_header.t 271 3.70% 17 t/api/status.t 62 33.33% 4-5 15 tests skipped. Failed 2/231 test scripts, 99.13% okay. 3/2278 subtests failed, 99.87% okay. [warning] server localhost.localdomain:8529 shutdown [ error] error running tests (please examine t/logs/error_log) ++ | Please file a bug report: http://perl.apache.org/bugs/ | ++ make: *** [run_tests] Error 1 [relevant bit from apache/content_length_header] # testing : HEAD /TestApache__content_length_header?set_content_length C-L header # expected: undef # received: 25 not ok 17 [relevant bit from api/status.t] # testing : code # expected: 499 # received: 200 # Failed test 4 in t/api/status.t at line 35 not ok 4 # testing : code message # expected: FooBared # received: OK # Failed test 5 in t/api/status.t at line 36 not ok 5 -8-- Start Bug Report 8-- 1. Problem Description: Errors configuring mod_perl 2. Used Components and their Configuration: *** mod_perl version 2.02 *** using /root/mod_perl-2.0.2/lib/Apache2/BuildConfig.pm *** Makefile.PL options: MP_APR_LIB = aprext MP_APXS= /usr/local/apache2/bin/apxs MP_COMPAT_1X = 1 MP_GENERATE_XS = 1 MP_LIBNAME = mod_perl MP_USE_DSO = 1 *** /usr/local/apache2/bin/httpd -V Server version: Apache/2.2.2 Server built: Jun 1 2006 12:53:23 Server's Module Magic Number: 20051115:2 Server loaded: APR 1.2.7, APR-Util 1.2.7 Compiled using: APR 1.2.7, APR-Util 1.2.7 Architecture: 32-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with -D APACHE_MPM_DIR=server/mpm/prefork -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=128 -D HTTPD_ROOT=/usr/local/apache2 -D SUEXEC_BIN=/usr/local/apache2/bin/suexec -D DEFAULT_PIDLOG=logs/httpd.pid -D DEFAULT_SCOREBOARD=logs/apache_runtime_status -D DEFAULT_LOCKFILE=logs/accept.lock -D DEFAULT_ERRORLOG=logs/error_log -D AP_TYPES_CONFIG_FILE=conf/mime.types -D SERVER_CONFIG_FILE=conf/httpd.conf *** /usr/bin/ldd /usr/local/apache2/bin/httpd libm.so.6 = /lib/tls/libm.so.6 (0xb7f02000) libaprutil-1.so.0 = /usr/local/apache2/lib/libaprutil-1.so.0 (0xb7eec000) libexpat.so.0 = /usr/local/apache2/lib/libexpat.so.0 (0xb7ecf000) libapr-1.so.0 = /usr/local/apache2/lib/libapr-1.so.0 (0xb7eac000) librt.so.1 = /lib/tls/librt.so.1 (0xb7ea6000) libcrypt.so.1 = /lib/tls/libcrypt.so.1 (0xb7e79000) libpthread.so.0 = /lib/tls/libpthread.so.0 (0xb7e6a000) libdl.so.2 = /lib/tls/libdl.so.2 (0xb7e66000) libc.so.6 = /lib/tls/libc.so.6 (0xb7d31000) /lib/ld-linux.so.2 = /lib/ld-linux.so.2 (0xb7f2a000) *** (apr|apu)-config linking info -L/usr/local/apache2/lib -laprutil-1 -lexpat -L/usr/local/apache2/lib -lapr-1 -lrt -lcrypt -lpthread -ldl *** /usr/bin/perl -V Summary of my perl5 (revision 5 version 8 subversion 4) configuration: Platform: osname=linux, osvers=2.6.15.4, archname=i386-linux-thread-multi uname='linux ninsei 2.6.15.4 #1 smp preempt mon feb 20 09:48:53 pst 2006 i686 gnulinux ' config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i386-linux -Dprefix=/usr -Dprivlib=/usr/s hare/perl/5.8 -Darchlib=/usr/lib/perl/5.8 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr /local -Dsitelib=/usr/local/share/perl/5.8.4 -Dsitearch=/usr/local/lib/perl/5.8.4 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man /man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -U afs -Ud_csh -Uusesfio -Uusenm -Duseshrplib -Dlibperl=libperl.so.5.8.4 -Dd_dosuid -des' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SO URCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -I/usr/local/include' ccversion='', gccversion='3.3.5 (Debian 1:3.3.5-13)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8,
Re: [mp2] make test errors with apache 2.2.2
David Weekly wrote: Failed Test Stat Wstat Total Fail Failed List of Failed --- t/apache/content_length_header.t 271 3.70% 17 t/api/status.t 62 33.33% 4-5 15 tests skipped. Failed 2/231 test scripts, 99.13% okay. 3/2278 subtests failed, 99.87% Both were just fixed in SVN and will be in the soonish to be 2.0.3 release. -- Philip M. Gollucci ([EMAIL PROTECTED]) 323.219.4708 Consultant / http://p6m7g8.net/Resume/resume.shtml Senior Software Engineer - TicketMaster - http://ticketmaster.com 1024D/A79997FA F357 0FDD 2301 6296 690F 6A47 D55A 7172 A799 97F It takes a minute to have a crush on someone, an hour to like someone, and a day to love someone, but it takes a lifetime to forget someone...
Re: [mp2] make test errors (failed to start server) with mp 2.0.2
Bennett Haselton wrote: [...] still waiting for server to warm up: ... the server is down, giving up after 121 secs [ error] failed to start server! (please examine t/logs/error_log) [Tue Jan 31 16:32:07 2006] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) END in modperl_extra.pl, pid=23711 [Tue Jan 31 16:32:12 2006] [notice] Digest: generating secret for digest authentication ... [...] Perhaps you hit the insufficient entropy problem? http://perl.apache.org/docs/2.0/user/troubleshooting/troubleshooting.html#Server_Hanging_at_the_Startup I think that this is the case, thanks to your sentence: This time, make test produced so much output that it went past the buffer of my telnet application, but the last output that it gave me was this: where you've mentioned telnet. Usually when you type at the local keyboard you generate the entropy for the random device, when you connect from a different machine, there is no physical input to accomplish that. -- _ Stas Bekman mailto:[EMAIL PROTECTED] http://stason.org/ MailChannels: Assured Messaging(TM) http://mailchannels.com/ The Practical mod_perl book http://modperlbook.org/ http://perl.apache.org/ http://perl.org/ http://logilune.com/
Re: [mp2] make test errors (failed to start server) with mp 2.0.2
At 01:25 AM 2/1/2006 -0800, Stas Bekman wrote: Bennett Haselton wrote: [...] still waiting for server to warm up: ... the server is down, giving up after 121 secs [ error] failed to start server! (please examine t/logs/error_log) [Tue Jan 31 16:32:07 2006] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) END in modperl_extra.pl, pid=23711 [Tue Jan 31 16:32:12 2006] [notice] Digest: generating secret for digest authentication ... [...] Perhaps you hit the insufficient entropy problem? http://perl.apache.org/docs/2.0/user/troubleshooting/troubleshooting.html#Server_Hanging_at_the_Startup I think that this is the case, thanks to your sentence: This time, make test produced so much output that it went past the buffer of my telnet application, but the last output that it gave me was this: where you've mentioned telnet. Usually when you type at the local keyboard you generate the entropy for the random device, when you connect from a different machine, there is no physical input to accomplish that. Well, on a whim I came back later and ran make test again, and this time it succeeded. I'm not sure if the reason it failed the first time had anything to do with the lack of user-generated entropy; if it did, that would seem like a serious bug if it can't be installed over a remote connection. (But then that's probably not the problem after all, if it succeeded the second time, over the same remote connection.) -Bennett [EMAIL PROTECTED] http://www.peacefire.org (425) 497 9002
[mp2] make test errors (failed to start server) with mp 2.0.2
I'm not very familiar with UNIX but I believe I followed the instructions exactly for installing mod_perl, and I still ran into the problem below. (Since I'm not used to UNIX though, if you need me to post more information, please specify as precisely as possible what I should type since I won't know how to do things like create a symbolic link to file X, etc. I can copy files, switch directories, etc. but that's about it.) I'm trying to install mod_perl 2.0.2 on a machine running Fedora Core release 3 (Heidelberg) Kernel 2.4.26-1um on an i686 with Apache/2.0.53. I'm root in a virtual machine hosted by my ISP. I first tried to do perl Makefile.PL MP_APXS=`which apxs` make make test under my root directory, but during make test I got the following error (everything between the lines): [warning] root mode: changing the files ownership to 'nobody' (99:99) [warning] testing whether 'nobody' is able to -rwx /root/mod_perl-2.0.2/t /usr/bin/perl -Mlib=/root/mod_perl-2.0.2/Apache-Test/lib -MApache::TestRun -e 'eval { Apache::TestRun::run_root_fs_test(99, 99, q[/root/mod_perl-2.0.2/t]) }'; [warning] result: [ error] You are running the test suite under user 'root'. Apache cannot spawn child processes as 'root', therefore we attempt to run the test suite with user 'nobody' (99:99). The problem is that the path (including all parent directories): /root/mod_perl-2.0.2/t must be 'rwx' by user 'nobody', so Apache can read and write under that path. There are several ways to resolve this issue. One is to move and rebuild the distribution to '/tmp/' and repeat the 'make test' phase. The other is not to run 'make test' as root (i.e. building under your /home/user directory). You can test whether some directory is suitable for 'make test' under 'root', by running a simple test. For example to test a directory '/root/mod_perl-2.0.2/t', run: % /usr/bin/perl -Mlib=/root/mod_perl-2.0.2/Apache-Test/lib -MApache::TestRun -e 'eval { Apache::TestRun::run_root_fs_test(99, 99, q[/root/mod_perl-2.0.2/t]) }'; Only if the test prints 'OK', the directory is suitable to be used for testing. Running the test suite is important to make sure that the module that you are about to install works on your system. If you choose not to run the test suite and you have a problem using this module, make sure to return and run this test suite before reporting any problems to the developers of this module. Skip the test suite? [No] So, following the directions as far as I understood them, I created a directory /tmp/modperl2test/, moved the mod_perl-2.0.2.tar.gz file there, extracted it, and tried again: perl Makefile.PL MP_APXS=`which apxs` make make test This time, make test produced so much output that it went past the buffer of my telnet application, but the last output that it gave me was this: waiting 120 seconds for server to start: [Tue Jan 31 16:32:00 2006] [info] 6 Apache2:: modules loaded [Tue Jan 31 16:32:00 2006] [info] 0 APR:: modules loaded [Tue Jan 31 16:32:00 2006] [info] base server + 27 vhosts ready to run tests ..[ error] Failed to find a config file to save the custom configuration in .. waiting 120 seconds for server to start: ok (waited 15 secs) server localhost:8529 started server localhost:8530 listening (filter_out_apache) server localhost:8531 listening (TestModules::proxy) server localhost:8532 listening (TestModperl::merge) server localhost:8533 listening (TestModperl::perl_options) server localhost:8534 listening (TestModperl::setupenv) server localhost:8535 listening (TestUser::rewrite) server localhost:8536 listening (TestVhost::log) server localhost:8537 listening (TestVhost::config) server localhost:8538 listening (TestProtocol::pseudo_http) server localhost:8539 listening (TestProtocol::echo_bbs) server localhost:8540 listening (TestProtocol::echo_filter) server localhost:8541 listening (TestProtocol::echo_bbs2) server localhost:8542 listening (TestProtocol::echo_timeout) server localhost:8543 listening (TestProtocol::echo_block) server localhost:8544 listening (TestProtocol::echo_nonblock) server localhost:8545 listening (TestPreConnection::note) server localhost:8546 listening (TestHooks::hookrun) server localhost:8547 listening (TestHooks::init) server localhost:8548 listening (TestHooks::trans) server localhost:8549 listening (TestHooks::stacked_handlers2) server localhost:8550 listening (TestHooks::startup) server localhost:8551 listening (TestFilter::in_bbs_inject_header) server localhost:8552 listening (TestFilter::in_str_msg) server localhost:8553 listening (TestFilter::both_str_con_add) server localhost:8554 listening (TestFilter::in_bbs_msg) server localhost:8555 listening (TestDirective::perlmodule) server localhost:8556 listening (TestDirective::perlrequire) server localhost:8557 listening (TestDirective::perlloadmodule4) server localhost:8558 listening (TestDirective::perlloadmodule5) server localhost:8559 listening
Re: [mp2] make test errors
On Wed, Jun 08, 2005 at 12:00:01AM +1000, Stas Bekman wrote: Great! William, can you please write a new entry for the troubleshooting chapter? With a full diagnosis and the solution? Really it should belong to the Apache-Test troubleshooting, but as at the moment it doesn't exist, we will just put it into the mp2's one. http://perl.apache.org/docs/2.0/user/troubleshooting/troubleshooting.html Hi Stas, I'm still alive; just been swamped. I'm not attaching this write-up as a patch since I'm not sure where you'd want to put it within the troubleshooting document. I'm not sure if I can provide a full diagnosis as it's been awhile since I did this work, and I'm still having some tests fail. It must have been the full moon and holding my tongue right that made it work with no failures in my last report to you. Nonetheless, the info below does clear up some of the errors I originally reported back on Feb 13. If you can think of other details that I should include, let me know and I'll dig up the messages from the archives. BTW, I just built and tested mp 2.0.1 with Apache 2.0.54 on FreeBSD 5.4 and all but 4 tests are passing. - Running tests inside a chroot environment If you are building your Apache and mod_perl inside a chroot environment, such as a FreeBSD jail, you may need to edit your /etc/hosts file to add a localhost entry that resolves to to the ip address of the jail rather than the default 127.0.0.1. - Also, the t/protocol/echo_filter.t test is failing. It runs tests 1 and 2 then keeps running until it fills up the disk space then dumps a massive core file. I'm just skipping it for now. Yeah, I guess you are hitting again the non-blocking socket issue FreeBSD. Please check the archives (I think on the dev list) talking about passing some special flag while building libapr to make the sockets work right. Unfortunately it didn't end up in the docs and I don't have the info handy. I've not been able to come across these messages which is too bad as the 4 failing tests (t/filter/both_str_con_ad, t/protocol/echo_block, t/protocol/echo_filter, and t/protocol/pseudo_http) all seem to be failing due to sockets. I noticed that 2.0.54 has APR 0.9.6 which includes a FreeBSD-specific update from 0.9.5: *) Fix apr_socket_opt_set with APR_IPV6_V6ONLY flag. Fixes httpd Listen IPv6 socket behavior on FreeBSD 5.x, OpenBSD, NetBSD. [Justin Erenkrantz] Is this the one you were thinking of? I couldn't see where I needed to pass any special flags to enable it. Thanks, William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
William McKee wrote: Stas, It's been awhile, but I'm back to working on these tests under FreeBSD 5.3 with mp2. I'm using the current release (2.0.0) with Apache 2.0.54. The root of many of my problems appears to be how Apache is resolving my localhost address. Apparently FBSD resolves localhost to my Jail IP. Apache is expecting the more usual 127.0.0.1. I was able to resolve the issues reported below by adding the following line to my /etc/hosts file above all other definitions: 192.168.1.1 localhost Great! William, can you please write a new entry for the troubleshooting chapter? With a full diagnosis and the solution? Really it should belong to the Apache-Test troubleshooting, but as at the moment it doesn't exist, we will just put it into the mp2's one. http://perl.apache.org/docs/2.0/user/troubleshooting/troubleshooting.html Assuming my jail ip was 192.168.1.1 this works and most tests are now pasing. Thanks for bearing with me while I came to an understanding about the behavior of localhost within a jail. Currently, I'm still having troubles with t/filter/both_str_con_add.t. Here's the output: t/filter/both_str_con_add1..4 [...] In both cases, the first string works but the following ones are failing. My guess is that the culprit is my $socket = Apache::TestRequest::vhost_socket which is used across all three of the failing tests. I'll try to spend some more time on it later today. Also, the t/protocol/echo_filter.t test is failing. It runs tests 1 and 2 then keeps running until it fills up the disk space then dumps a massive core file. I'm just skipping it for now. Yeah, I guess you are hitting again the non-blocking socket issue FreeBSD. Please check the archives (I think on the dev list) talking about passing some special flag while building libapr to make the sockets work right. Unfortunately it didn't end up in the docs and I don't have the info handy. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [mp2] make test errors
Stas, It's been awhile, but I'm back to working on these tests under FreeBSD 5.3 with mp2. I'm using the current release (2.0.0) with Apache 2.0.54. The root of many of my problems appears to be how Apache is resolving my localhost address. Apparently FBSD resolves localhost to my Jail IP. Apache is expecting the more usual 127.0.0.1. I was able to resolve the issues reported below by adding the following line to my /etc/hosts file above all other definitions: 192.168.1.1 localhost Assuming my jail ip was 192.168.1.1 this works and most tests are now pasing. Thanks for bearing with me while I came to an understanding about the behavior of localhost within a jail. Currently, I'm still having troubles with t/filter/both_str_con_add.t. Here's the output: t/filter/both_str_con_add1..4 # Running under perl version 5.008006 for freebsd # Current time local: Thu Jun 2 05:03:50 2005 # Current time GMT: Thu Jun 2 09:03:50 2005 # Using Test.pm version 1.25 # Using Apache/Test.pm version 1.25 ok 1 # expected: mod_perl # received: mod_perl # Failed test 3 in t/filter/both_str_con_add.t at line 25 fail #2 # Failed test 4 in t/filter/both_str_con_add.t at line 25 fail #3 ok 2 # expected: 2.0 # received: not ok 3 # expected: rules # received: not ok 4 FAILED tests 3-4 As well as t/protocol/echo_block.t with the following output: t/protocol/echo_block1..3 # Running under perl version 5.008006 for freebsd # Current time local: Thu Jun 2 06:31:17 2005 # Current time GMT: Thu Jun 2 10:31:17 2005 # Using Test.pm version 1.25 # Using Apache/Test.pm version 1.25 ok 1 # expected: hello # received: hello ok 2 # Failed test 3 in t/protocol/echo_block.t at line 22 fail #2 # expected: world # received: not ok 3 FAILED test 3 Failed 1/3 tests, 66.67% okay In both cases, the first string works but the following ones are failing. My guess is that the culprit is my $socket = Apache::TestRequest::vhost_socket which is used across all three of the failing tests. I'll try to spend some more time on it later today. Also, the t/protocol/echo_filter.t test is failing. It runs tests 1 and 2 then keeps running until it fills up the disk space then dumps a massive core file. I'm just skipping it for now. William On Fri, Feb 18, 2005 at 05:32:49PM -0500, Stas Bekman wrote: William McKee wrote: [...] To recap, these are the results of the mp2 test (RC4) with the following environment setting: export ac_cv_o_nonblock_inherited=yes [...] # Failed test 2 in t/api/access2.t at line 15 # testing : no credentials passed # expected: 401 # received: 403 not ok 2 I'm not sure why this happens. It should be: # testing : no credentials passed # expected: 401 # received: 401 ok 2 HTTP_FORBIDDEN is not returned by ap_get_basic_auth_pw. Try to dump the $rc code in that sub-test in t/response/TestAPI/access2.pm my($rc, $sent_pw) = $r-get_basic_auth_pw; warn RC: $rc\n; return $rc if $rc != Apache::OK; ok 3 ok 4 not ok 5 # Failed test 5 in t/api/access2.t at line 24 not ok 6 # Failed test 6 in t/api/access2.t at line 27 FAILED tests 2, 5-6 What the error_log says about those two? It looks like a fileperms problem again. Try to make sure that the ownership of all files under t/ is the same. find t -type d -exec chmod u+rwx {} \; find t -type f -exec chmod u+rw {} \; find t -type d -exec chown uid.gid {} \; find t -type f -exec chown uid.gid {} \; where uid.gid is the id you use to run the tests with (e.g. nobody.nobody) -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
On Fri, Feb 18, 2005 at 05:35:56PM -0500, Stas Bekman wrote: Joe, shouldn't the APR API emit some kind of errors in the situation like William has with jail env+ac_cv_o_nonblock_inherited thingy, rather than silently fail? The issue is that the configure test couldn't make a decision, but configure tests are always binary yes/no not yes/no/dunno and that's really the nature of the beast. The only viable solution to this type of problem in general is to ensure that the APR test suite catches it by checking that the determined behaviour matches the actual behaviour; then you can say to people who see these weird mod_perl failures go run the APR test suite and have a simpler path to diagnose the problem. Maybe it already *does* catch this problem, I don't know. joe
Re: [mp2] make test errors
Joe Orton wrote: On Fri, Feb 18, 2005 at 05:35:56PM -0500, Stas Bekman wrote: Joe, shouldn't the APR API emit some kind of errors in the situation like William has with jail env+ac_cv_o_nonblock_inherited thingy, rather than silently fail? The issue is that the configure test couldn't make a decision, but configure tests are always binary yes/no not yes/no/dunno and that's really the nature of the beast. The only viable solution to this type of problem in general is to ensure that the APR test suite catches it by checking that the determined behaviour matches the actual behaviour; then you can say to people who see these weird mod_perl failures go run the APR test suite and have a simpler path to diagnose the problem. As you've seen, Joe, it's not obvious right away what the problem is, so that proposal is not quite sufficient. Do you suggest that if an explicit call to make a blocking IO is made and apr ignored it silently it's a correct behavior? Or do you suggest that there is no possible way to detect that that call has failed, and therefore it can't report the failure? -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [mp2] make test errors
On Thu, Feb 17, 2005 at 03:05:31PM -0500, William McKee wrote: On Thu, Feb 17, 2005 at 04:53:45PM +, Joe Orton wrote: Check for the result of the: checking if O_NONBLOCK setting is inherited from listening sockets test when you run the configure script. I wasn't sure if you were referring to the mod_perl or Apache configure script. When I ran the following command, the setting was no: perl Makefile.PL PREFIX=/usr/local MP_USE_STATIC=1 MP_AP_PREFIX=/usr/local/src/httpd-2.0.53_perl MP_AP_CONFIGURE=--with-mpm=prefork --prefix=/usr/local/apache2_perl The config.log file from that command is temporarily available here[1]. That confirms that the problem: you got a connect() failure when the configure test program attempted to a listener bound to 0.0.0.0 You can try the standalone test program here to reproduce the failure: http://www.apache.org/~jorton/nonblock.c It could be some firewalling thing in how the machine is set up. joe
Re: [mp2] make test errors
On Fri, Feb 18, 2005 at 01:40:44PM +, Joe Orton wrote: That confirms that the problem: you got a connect() failure when the configure test program attempted to a listener bound to 0.0.0.0 OK. You can try the standalone test program here to reproduce the failure: Yes, that seems to be failing. Here's the output: $ ./nonblock bound to 0.0.0.0:11719 connect: Connection refused It could be some firewalling thing in how the machine is set up. OK, so to bring us back around to the failing mod_perl tests, I belive your next advice would be to compile and test it under a normal account in a non-jail process to see if the same behavior manifests. I'll try to do that soon and report back. Actually, I suppose that I could try running the nonblock script first to see if that works. Thanks, William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
On Thu, Feb 17, 2005 at 06:27:15PM -0500, Stas Bekman wrote: As for 'Can't open t/conf/perlsection.conf', do t/TEST -clean To make a long story short, I had run the make test on the source as root which caused the t/ directory to have its ownership changed to nobody. So when I went to run my tests under my normal user account, A::T was having problems cleaning up the test files. Simply fixing the ownership did the job. To recap, these are the results of the mp2 test (RC4) with the following environment setting: export ac_cv_o_nonblock_inherited=yes With the above setting while building and testing mp2, I am still getting errors. However, they are in different. Here's the results: Failed TestStat Wstat Total Fail Failed List of Failed --- t/api/access2.t 63 50.00% 2 5-6 t/modperl/setupenv.t 636 9.52% 8 22 29 36 50 57 t/preconnection/note.t11 100.00% 1 8 tests skipped. Failed 3/222 test scripts, 98.65% okay. 10/2201 subtests failed, 99.55% okay. When I ran the individual tests that were failing, the failures in setupenv.t and note.t were all attributable to problem of mod_perl getting a different ip address than the remote_ip function in httpd (I have a request to Apache developers about this issue as I could not figure out where httpd is setting this value). The access2.t, which didn't fail in my earlier testing, reports the following: # Running under perl version 5.008006 for freebsd # Current time local: Fri Feb 18 12:04:57 2005 # Current time GMT: Fri Feb 18 17:04:57 2005 # Using Test.pm version 1.25 # Using Apache/Test.pm version 1.21 ok 1 # Failed test 2 in t/api/access2.t at line 15 # testing : no credentials passed # expected: 401 # received: 403 not ok 2 ok 3 ok 4 not ok 5 # Failed test 5 in t/api/access2.t at line 24 not ok 6 # Failed test 6 in t/api/access2.t at line 27 FAILED tests 2, 5-6 Does this provide any further information to help us track down the testing problems I'm seeing? Should I be using this version of the binary instead of the one configured without the ac_cv_o_nonblock_inherited setting? Thanks! William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
On Fri, Feb 18, 2005 at 10:15:19AM -0500, William McKee wrote: Actually, I suppose that I could try running the nonblock script first to see if that works. I was able to get my hosting provider to run the nonblock program outside of a jailed process and it works. We've been trying to figure out why it is failing in a jail. Interestingly, it is able to obtain a listener socket but when it goes to get a client socket, it is failing. If instead of using the 0.0.0.0 sin_addr, I specify address as 127.0.0.1, the code works. We are submitting this info to the freebsd developers. Will post back with more info later. Thanks for helping me track this down. It's been quite edifying to learn more about the lower levels of the network model. William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
William McKee wrote: [...] To recap, these are the results of the mp2 test (RC4) with the following environment setting: export ac_cv_o_nonblock_inherited=yes [...] # Failed test 2 in t/api/access2.t at line 15 # testing : no credentials passed # expected: 401 # received: 403 not ok 2 I'm not sure why this happens. It should be: # testing : no credentials passed # expected: 401 # received: 401 ok 2 HTTP_FORBIDDEN is not returned by ap_get_basic_auth_pw. Try to dump the $rc code in that sub-test in t/response/TestAPI/access2.pm my($rc, $sent_pw) = $r-get_basic_auth_pw; warn RC: $rc\n; return $rc if $rc != Apache::OK; ok 3 ok 4 not ok 5 # Failed test 5 in t/api/access2.t at line 24 not ok 6 # Failed test 6 in t/api/access2.t at line 27 FAILED tests 2, 5-6 What the error_log says about those two? It looks like a fileperms problem again. Try to make sure that the ownership of all files under t/ is the same. find t -type d -exec chmod u+rwx {} \; find t -type f -exec chmod u+rw {} \; find t -type d -exec chown uid.gid {} \; find t -type f -exec chown uid.gid {} \; where uid.gid is the id you use to run the tests with (e.g. nobody.nobody) -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [mp2] make test errors
Joe, shouldn't the APR API emit some kind of errors in the situation like William has with jail env+ac_cv_o_nonblock_inherited thingy, rather than silently fail? -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [mp2] make test errors
Hi Stas, The documentation at http://perl.apache.org/docs/2.0/api/APR/OS.html has an inconsistency. In the example, it seems the method thread_current should actually be current_thread_id. Regard, Jie
Re: [mp2] make test errors
Jie Gao wrote: Hi Stas, The documentation at http://perl.apache.org/docs/2.0/api/APR/OS.html has an inconsistency. In the example, it seems the method thread_current should actually be current_thread_id. Thanks Jie, committed. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [mp2] make test errors
On Wed, Feb 16, 2005 at 07:12:11PM -0500, Stas Bekman wrote: Joe, do you have an idea why this doesn't work on FreeBSD 5.3 (in jail environment). I remember last time you've fixed something about some BSD flavor in APR socket lib. Thanks. That was all the non-blocking-vs-blocking stuff. First I'd ask whether or not this fails in a non-chroot environment. A chroot will screw up all kinds of stuff (e.g. the resolver libraries) unless you set it up properly. I presume that httpd+mod_perl were at least configured and built *outside* the chroot? joe
Re: [mp2] make test errors
On Wed, Feb 16, 2005 at 07:14:24PM -0500, Stas Bekman wrote: Yes, it is (though keep in mind that this is a virtual server running as a jailed process, not a separate machine). That could be the reason. But if I open a lynx session and surf over to localhost, my server comes up fine. Well, basically you want to figure out how to make Apache-Test see the same value as Apache. i.e. teach our_remote_addr() to get the same value. It's Apache::Connection which defines the remote_ip() function that is getting the full ip, as opposed to our_remote_addr() which gets the ip defined by localhost (127.0.0.1). Since the test is for pnotes, we could change the test. However, I suspect it'd be better to figure out what's causing the difference between the two functions. Is this the right place to file a bug report against Apache::Connection? William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
On Wed, Feb 16, 2005 at 07:12:11PM -0500, Stas Bekman wrote: please look at your original report, William, it was failing the same 2 sub-tests. That's weird because it's only failing one if I run it by itself. This obviously wasn't the case earlier when I reported the error. At any rate, this appears to be a APR issue which I'll try to take up with the appropriate developers. Thanks, William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
On Thu, Feb 17, 2005 at 10:39:46AM +, Joe Orton wrote: That was all the non-blocking-vs-blocking stuff. First I'd ask whether or not this fails in a non-chroot environment. A chroot will screw up all kinds of stuff (e.g. the resolver libraries) unless you set it up properly. Any pointers to how my host should properly configure the chroot would be appreciated. Considering that only 17 of 2106 tests failed, it must be pretty good. I've been running Apache 1.3.x under a jail for a couple years now without any problems (though I couldn't tell you if the tests passed; I doubt that they were being run by the Apachetoolbox utility that I was using to build my server). Is building and running Apache within a chroot environment going to be a problem under Apache2? I presume that httpd+mod_perl were at least configured and built *outside* the chroot? No, it was built inside the jail. I have no access outside of my jail. William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
On Thu, Feb 17, 2005 at 09:18:31AM -0500, William McKee wrote: On Thu, Feb 17, 2005 at 10:39:46AM +, Joe Orton wrote: That was all the non-blocking-vs-blocking stuff. First I'd ask whether or not this fails in a non-chroot environment. A chroot will screw up all kinds of stuff (e.g. the resolver libraries) unless you set it up properly. Any pointers to how my host should properly configure the chroot would be appreciated. Considering that only 17 of 2106 tests failed, it must be pretty good. I've been running Apache 1.3.x under a jail for a couple years now without any problems (though I couldn't tell you if the tests passed; I doubt that they were being run by the Apachetoolbox utility that I was using to build my server). Is building and running Apache within a chroot environment going to be a problem under Apache2? The configure script in 2.0 (actually, the APR library) does several dynamic system check; the test in question which could make these mod_perl tests needs to bind to a port on 127.0.0.1 and connect to it. It sounds like you may have issues with that in your jail. Check for the result of the: checking if O_NONBLOCK setting is inherited from listening sockets test when you run the configure script. It should be yes on FreeBSD. If it's no, then please preserve capture the srclib/apr/config.log file and upload it somewhere so we can check it. Then try: export ac_cv_o_nonblock_inherited=yes or equivalent in your shell then re-run configure and re-build everything and re-run the mod_perl test suites. I presume that httpd+mod_perl were at least configured and built *outside* the chroot? No, it was built inside the jail. I have no access outside of my jail. I think this is a bit optimistic. I would use a proper FreeBSD 5.3 machine somewhere else to build the software, then deploy prebuilt binaries on the production machine inside the jail. joe
Re: [mp2] make test errors
On Thu, Feb 17, 2005 at 04:53:45PM +, Joe Orton wrote: Check for the result of the: checking if O_NONBLOCK setting is inherited from listening sockets test when you run the configure script. I wasn't sure if you were referring to the mod_perl or Apache configure script. When I ran the following command, the setting was no: perl Makefile.PL PREFIX=/usr/local MP_USE_STATIC=1 MP_AP_PREFIX=/usr/local/src/httpd-2.0.53_perl MP_AP_CONFIGURE=--with-mpm=prefork --prefix=/usr/local/apache2_perl The config.log file from that command is temporarily available here[1]. file and upload it somewhere so we can check it. Then try: export ac_cv_o_nonblock_inherited=yes or equivalent in your shell then re-run configure and re-build everything and re-run the mod_perl test suites. Reran the above command followed by make make test. Here is the output (relevent error is Can't open t/conf/perlsection.conf; that file exists and is 644 with nobody.nobody as owner.group): waiting 120 seconds for server to start: .[Thu Feb 17 14:46:29 2005] [info] 7 Apache:: modules loaded [Thu Feb 17 14:46:29 2005] [info] 0 APR:: modules loaded [Thu Feb 17 14:46:29 2005] [info] base server + 27 vhosts ready to run tests .Syntax error on line 51 of /stubs/usr_local/src/mod_perl-2.0.0-RC4/t/conf/extra.last.conf: Can't open /stubs/usr_local/src/mod_perl-2.0.0-RC4/t/conf/perlsection.conf: Permission denied at /stubs/usr_local/src/mod_perl-2.0.0-RC4/t/conf/extra.last.conf line 53.\n ... waiting 120 seconds for server to start: not ok [ error] giving up after 121 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. 420) and repeat the last command. [ error] server failed to start! (t/logs/error_log wasn't created, start the server in the debug mode) ++ | Please file a bug report: http://perl.apache.org/bugs/ | ++ *** Error code 1 Stop in /stubs/usr_local/src/mod_perl-2.0.0-RC4. I presume that httpd+mod_perl were at least configured and built *outside* the chroot? No, it was built inside the jail. I have no access outside of my jail. I think this is a bit optimistic. I would use a proper FreeBSD 5.3 machine somewhere else to build the software, then deploy prebuilt binaries on the production machine inside the jail. Well, I'm going to be an optimist for now. If I run into production problems (beyond these tests failing), I'll certainly go with your recommendation. Unfortunately, I do not have access to a FreeBSD 5.3 server to run the tests outside of a jail to see if all are passing. I'll try to setup one in the coming weeks. Thanks, William [1] http://test.knowmad.com/~william/config.log -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
William McKee wrote: On Wed, Feb 16, 2005 at 07:14:24PM -0500, Stas Bekman wrote: Yes, it is (though keep in mind that this is a virtual server running as a jailed process, not a separate machine). That could be the reason. But if I open a lynx session and surf over to localhost, my server comes up fine. I've never said it was wrong. As you know when you assign your machine an IP, it can still internally be accessed by loopback device which is always 127.0.0.1 or ::1 on ipv6 machines. Well, basically you want to figure out how to make Apache-Test see the same value as Apache. i.e. teach our_remote_addr() to get the same value. It's Apache::Connection which defines the remote_ip() function that is getting the full ip, as opposed to our_remote_addr() which gets the ip defined by localhost (127.0.0.1). Since the test is for pnotes, we could change the test. However, I suspect it'd be better to figure out what's causing the difference between the two functions. Is this the right place to file a bug report against Apache::Connection? There is no problem with Apache::Connection. There is no problem at all. As explained above both are correct. For the sake of the test all we want is that they agree. That's why I have asked you to figure out how to match our_remote_addr() with remote_ip(), since the latter can't be changed. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [mp2] make test errors
William McKee wrote: On Thu, Feb 17, 2005 at 04:53:45PM +, Joe Orton wrote: Check for the result of the: checking if O_NONBLOCK setting is inherited from listening sockets test when you run the configure script. I wasn't sure if you were referring to the mod_perl or Apache configure script. When I ran the following command, the setting was no: Since you build a static Apache+mod_perl, running mod_perl is OK. As for 'Can't open t/conf/perlsection.conf', do t/TEST -clean and check that t/conf/perlsection.conf is no longer there. Then do 'make test'. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [mp2] make test errors
On Tue, Feb 15, 2005 at 06:41:04PM -0500, Stas Bekman wrote: I think there were a few similar reports posted here before (check the archives). Unfortunately no one running FreeBSD has volunteered to look at those. From what we have seen before all test failures seem to be caused by some socket problems in the underlying C libs. That makes sense as I'm running inside a jailed process which has limited access to sockets. I wonder if there's a way to test for this condition and skip the failing tests. I'll check the archives and see what I can learn. William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
Stas (and anyone else using FreeBSD), I tried searching the archives but didn't find anything that specifically addressed the errors I'm having. As shown in my original bug report, I'm using FreeBSD 5.3 in a jailed (chrooted) environment. I'm willing to dig into the test errors if you can give me some assistance (I've not much experience with the IO::* modules). I've started with t/filter/both_str_con_add.t. This test opens a socket using the following code: my $module = TestFilter::both_str_con_add; my $socket = Apache::TestRequest::vhost_socket($module); It then proceeds to print 3 strings to the socket and read the reply. The first test works, the following two fail. It seems to me that if one works, they all should work. If that's the case, then this error may be pointing to more problems than missing socket support in a jailed environment as I had originally surmised. Can you give me any pointers for further testing? I'm going to try the debugger to see what I can find but am not very familiar with the codebase. Thanks, William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
I didn't get very far with debugging the test (basically the test server got started and I lost control of the debugger). At any rate, I found some more information about sockets inside of jailed environments[1]. Section 4.2.2 seems to indicate that the type of socket we are creating in the following code from A::TestRequest is OK: require IO::Socket; return IO::Socket::INET-new(%args); As an alternate approach, I've created a test script that opens a socket to the test webserver and prints the same strings from the test. First, I start the test servers via t/TEST -start. Then I run my attached script. The output is as expected. I think this is a good thing but probably means there is a problem somewhere in the test scripts. Any ideas for tracking this one down? As for determing whether we are running inside of a jail, there are several techniques. The simplest seems to be checking the output of 'df /' to see if it reports being mounted on a different filesystem (e.g., /local/jails in my case). Other solutions require C code or additional packages[2]. William [1] http://www.freebsd.org/doc/en_US.ISO8859-1/books/arch-handbook/jail-restrictions.html [2] http://memberwebs.com/nielsen/freebsd/jails/jailutils/ -- Knowmad Services Inc. http://www.knowmad.com #!/usr/bin/perl -w use IO::Socket; my $host = 'localhost'; my $port = '8529'; my $socket = IO::Socket::INET-new(PeerAddr = $host, PeerPort = $port) or die Unable to create listener socket: $!; my @test_strings = qw(MODPERL 2.0 RULES); for my $str (@test_strings) { print $socket $str\n; chomp(my $reply = $socket||''); $str = lc $str; $str =~ s/modperl/mod_perl/; print (Reply = $reply\nExpected = $str\n); }
Re: [mp2] make test errors
William McKee wrote: BTW, this is a different issue: t/TEST t/preconnection/note.t -v # testing : connection notes # Failed test 1 in t/preconnection/note.t at line 16 # expected: 127.0.0.1 # received: 166.70.252.34 Here the Apache API: my $ip = $c-remote_ip; sees 166.70.252.34 whereas Apache-Test sees 127.0.0.1. I suppose 166.70.252.34 is the external IP of the same machine. Try to debug our_remote_addr() in Apache/TestConfig.pm to figure out why there is a difference (most likely it defaults to resolving 'localhost') -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [mp2] make test errors
William McKee wrote: t/TEST t/protocol/echo_block.t -v # Failed test 2 in t/protocol/echo_block.t at line 22 # expected: hello # received: # Failed test 3 in t/protocol/echo_block.t at line 22 fail #2 not ok 2 # expected: world # received: not ok 3 see if this patch helps: Index: t/protocol/TestProtocol/echo_block.pm === --- t/protocol/TestProtocol/echo_block.pm (revision 153514) +++ t/protocol/TestProtocol/echo_block.pm (working copy) @@ -33,6 +33,8 @@ or die failed to set blocking mode; } +$socket-opt_set(APR::SO_NONBLOCK, 0); + while ($socket-recv(my $buffer, BUFF_LEN)) { die recv() has returned untainted data:; -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [mp2] make test errors
William McKee wrote: I didn't get very far with debugging the test (basically the test server got started and I lost control of the debugger). At any rate, I found some more information about sockets inside of jailed environments[1]. Section 4.2.2 seems to indicate that the type of socket we are creating in the following code from A::TestRequest is OK: require IO::Socket; return IO::Socket::INET-new(%args); Don't forget that we are talking about APR socket API, not perl socket API, which aren't the same. I've never said that it's the fact that your run in the jailed environment is the cause of the problem. It's just that we saw exactly the same reports earlier, that made me think of APR socket API, but it could be something else too. you can add debug prints on the server side to see what goes wrong. Unfortunately no tracing is available for sockets IO, since it's impelemented entirely by Apache. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [mp2] make test errors
On Wed, Feb 16, 2005 at 04:12:34PM -0500, Stas Bekman wrote: Don't forget that we are talking about APR socket API, not perl socket API, which aren't the same. Oh, right, I hadn't really considered that. Hopefully it's at least useful to see that the perl sockets are working. I've never said that it's the fact that your run in the jailed environment is the cause of the problem. It's just that we saw exactly the same reports earlier, that made me think of APR socket API, but it could be something else too. Actually, I'm the one that postulated the jailed environment as the cause of the problem. Socket support is limited inside of jailed processes. However, since the perl socket API works, this may be an issue with APR socket (or the test). you can add debug prints on the server side to see what goes wrong. Unfortunately no tracing is available for sockets IO, since it's impelemented entirely by Apache. OK. William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
On Wed, Feb 16, 2005 at 04:08:45PM -0500, Stas Bekman wrote: see if this patch helps: Uh-oh, from bad to worse. Now we're failing two tests (instead of only the last one): # Running under perl version 5.008006 for freebsd # Current time local: Wed Feb 16 17:23:47 2005 # Current time GMT: Wed Feb 16 22:23:47 2005 # Using Test.pm version 1.25 # Using Apache/Test.pm version 1.21 ok 1 # expected: hello # received: not ok 2 # Failed test 2 in t/protocol/echo_block.t at line 22 # expected: world # received: not ok 3 # Failed test 3 in t/protocol/echo_block.t at line 22 fail #2 FAILED tests 2-3 William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
On Wed, Feb 16, 2005 at 04:06:39PM -0500, Stas Bekman wrote: whereas Apache-Test sees 127.0.0.1. I suppose 166.70.252.34 is the external IP of the same machine. Yes, it is (though keep in mind that this is a virtual server running as a jailed process, not a separate machine). Try to debug our_remote_addr() in Apache/TestConfig.pm to figure out why there is a difference (most likely it defaults to resolving 'localhost') OK, here's a dump of the gethostbyname function: # ghbn = $VAR1 = [ 'localhost', 'localhost.my.domain', 2, 4, '' ]; The last item in the list is showing up in an odd format which I'm not able to reproduce here (perhaps this is an opaque string?). At any rate, remote_addr is empty so the value that is being returned by our_remote_addr() is coming from passing the iaddr value to Socket::inet_ntoa. Here's the relevant contents of my /etc/hosts: ::1 localhost localhost.my.domain 127.0.0.1 localhost localhost.my.domain I tried removing that first entry but it made no difference. This is definitly beyond my level of knowledge so hopefully you can give me some further pointers for what to look at next. William -- Knowmad Services Inc. http://www.knowmad.com
Re: [mp2] make test errors
William McKee wrote: On Wed, Feb 16, 2005 at 04:06:39PM -0500, Stas Bekman wrote: whereas Apache-Test sees 127.0.0.1. I suppose 166.70.252.34 is the external IP of the same machine. Yes, it is (though keep in mind that this is a virtual server running as a jailed process, not a separate machine). That could be the reason. Try to debug our_remote_addr() in Apache/TestConfig.pm to figure out why there is a difference (most likely it defaults to resolving 'localhost') OK, here's a dump of the gethostbyname function: # ghbn = $VAR1 = [ 'localhost', 'localhost.my.domain', 2, 4, '' ]; The last item in the list is showing up in an odd format which I'm not able to reproduce here (perhaps this is an opaque string?). At any rate, remote_addr is empty so the value that is being returned by our_remote_addr() is coming from passing the iaddr value to Socket::inet_ntoa. Here's the relevant contents of my /etc/hosts: ::1 localhost localhost.my.domain 127.0.0.1 localhost localhost.my.domain I tried removing that first entry but it made no difference. This is definitly beyond my level of knowledge so hopefully you can give me some further pointers for what to look at next. Well, basically you want to figure out how to make Apache-Test see the same value as Apache. i.e. teach our_remote_addr() to get the same value. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [mp2] make test errors
William McKee wrote: -8-- Start Bug Report 8-- 1. Problem Description: While installing mod_perl2 on a FreeBSD 5.3 jail environment, I received the following test errors: Failed Test Stat Wstat Total Fail Failed List of Failed --- t/filter/both_str_con_add.t43 75.00% 2-4 t/preconnection/note.t 11 100.00% 1 t/protocol/echo_block.t32 66.67% 2-3 t/protocol/echo_filter.t 32 66.67% 2-3 t/protocol/pseudo_http.t 139 69.23% 3-8 11-13 18 tests skipped. Failed 5/222 test scripts, 97.75% okay. 17/2105 subtests failed, 99.19% okay. No output in the error_log indicated a problem. I subsequently ran each failing test in verbose mode. Here is the failing output: I think there were a few similar reports posted here before (check the archives). Unfortunately no one running FreeBSD has volunteered to look at those. From what we have seen before all test failures seem to be caused by some socket problems in the underlying C libs. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
[mp2] make test errors
-8-- Start Bug Report 8-- 1. Problem Description: While installing mod_perl2 on a FreeBSD 5.3 jail environment, I received the following test errors: Failed Test Stat Wstat Total Fail Failed List of Failed --- t/filter/both_str_con_add.t43 75.00% 2-4 t/preconnection/note.t 11 100.00% 1 t/protocol/echo_block.t32 66.67% 2-3 t/protocol/echo_filter.t 32 66.67% 2-3 t/protocol/pseudo_http.t 139 69.23% 3-8 11-13 18 tests skipped. Failed 5/222 test scripts, 97.75% okay. 17/2105 subtests failed, 99.19% okay. No output in the error_log indicated a problem. I subsequently ran each failing test in verbose mode. Here is the failing output: t/TEST t/filter/both_str_con_add.t -v # expected: 2.0 # received: not ok 3 # expected: rules # received: not ok 4 t/TEST t/preconnection/note.t -v # testing : connection notes # Failed test 1 in t/preconnection/note.t at line 16 # expected: 127.0.0.1 # received: 166.70.252.34 t/TEST t/protocol/echo_block.t -v # Failed test 2 in t/protocol/echo_block.t at line 22 # expected: hello # received: # Failed test 3 in t/protocol/echo_block.t at line 22 fail #2 not ok 2 # expected: world # received: not ok 3 t/TEST t/protocol/echo_filter.t -v # expected: HELLO # received: not ok 2 # Failed test 2 in t/protocol/echo_filter.t at line 22 # expected: WORLD # received: not ok 3 # Failed test 3 in t/protocol/echo_filter.t at line 22 fail #2 t/TEST t/protocol/pseudo_http.t -v # send: HELO # testing : login # expected: Login: # Failed test 3 in t/protocol/pseudo_http.t at line 63 fail #2 # received: not ok 3 # send: stas # testing : good password # Failed test 4 in t/protocol/pseudo_http.t at line 63 fail #3 # expected: Password: # Failed test 5 in t/protocol/pseudo_http.t at line 57 # received: not ok 4 # Failed test 6 in t/protocol/pseudo_http.t at line 63 fail #4 # send: foobar # Failed test 7 in t/protocol/pseudo_http.t at line 63 fail #5 # testing : banner # Failed test 8 in t/protocol/pseudo_http.t at line 57 fail #2 # expected: Welcome to TestProtocol::pseudo_http # received: not ok 5 # testing : date # expected: Available commands: date quit # received: not ok 6 # send: date # testing : quit # expected: (?-xism:The time is:) # received: not ok 7 # send: quit # testing : end of transmission # expected: Goodbye # received: not ok 8 ok 9 # testing : greeting # expected: HELO # received: HELO ok 10 # send: HELO # testing : login # expected: Login: # received: # Failed test 11 in t/protocol/pseudo_http.t at line 63 fail #7 not ok 11 # send: stas # testing : wrong password # expected: Password: # Failed test 12 in t/protocol/pseudo_http.t at line 63 fail #8 # Failed test 13 in t/protocol/pseudo_http.t at line 57 fail #3 # received: not ok 12 # send: foObaR # testing : end of transmission # expected: Access Denied # received: not ok 13 2. Used Components and their Configuration: *** mod_perl version 1.999021 *** using /stubs/usr_local/src/mod_perl-2.0.0-RC4/lib/Apache/BuildConfig.pm *** Makefile.PL options: MP_APR_LIB = aprext MP_AP_CONFIGURE = --with-mpm=prefork MP_AP_PREFIX= /usr/local/src/httpd-2.0.53_perl MP_COMPAT_1X= 1 MP_GENERATE_XS = 1 MP_LIBNAME = mod_perl MP_USE_STATIC = 1 *** /usr/local/src/httpd-2.0.53_perl/httpd -V Server version: Apache/2.0.53 Server built: Feb 13 2005 11:43:35 Server's Module Magic Number: 20020903:9 Architecture: 32-bit Server compiled with -D APACHE_MPM_DIR=server/mpm/prefork -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses disabled) -D APR_USE_FLOCK_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D HTTPD_ROOT=/usr/local/apache2 -D SUEXEC_BIN=/usr/local/apache2/bin/suexec -D DEFAULT_PIDLOG=logs/httpd.pid -D DEFAULT_SCOREBOARD=logs/apache_runtime_status -D DEFAULT_LOCKFILE=logs/accept.lock -D DEFAULT_ERRORLOG=logs/error_log -D AP_TYPES_CONFIG_FILE=conf/mime.types -D SERVER_CONFIG_FILE=conf/httpd.conf *** (apr|apu)-config linking info -L/usr/local/src/httpd-2.0.53_perl/srclib/apr/.libs -L/usr/local/src/httpd-2.0.53_perl/srclib/apr -lapr-0 -lm -lcrypt -L/usr/local/src/httpd-2.0.53_perl/srclib/apr-util/.libs -L/usr/local/src/httpd-2.0.53_perl/srclib/apr-util -laprutil-0 /usr/local/src/httpd-2.0.53_perl/srclib/apr-util/xml/expat/lib/libexpat.la *** /usr/public/bin/perl -V Summary of my perl5 (revision 5 version 8 subversion 6) configuration: Platform: osname=freebsd, osvers=5.3-release-p5, archname=i386-freebsd-64int uname='freebsd hobbiton.shire.net