You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Jens Petter Salvesen <je...@experian-da.no> on 2008/05/13 10:33:35 UTC
Make test fails, fails to connect
Hi all,
I'm having a hard time getting mod_perl2 to make tests automatically as
part of an install script. What happens has happened many times before,
but was not a problem since we knew the workaround.
The problem is that the first time "make test" is made, the system times
out waiting for the apache server. However, a ps reveals that the apache
daemon is running and netstat -l says it is listening. The test script
simply fails to realize the daemon
Here's the relevant info. (We are, as you can see, compiling up a
separate environment that we use for running unit testing before we
perform the actual install)
[root@vm-test1 mod_perl-2.0.4]# /usr/local/smmtest/perl/bin/perl
Makefile.PL MP_APXS=/usr/local/smmtest/apache/bin/apxs
"Make" runs without any incident. And then we run make test, and this
happens:
/usr/local/smmtest/perl/bin/perl -Iblib/arch -Iblib/lib \
t/TEST -clean
[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/local/smmtest/perl/bin/perl
/tmp/mod_perl-2.0.4/t/TEST -clean
APACHE_TEST_GROUP= APACHE_TEST_HTTPD= APACHE_TEST_PORT=
APACHE_TEST_USER= APACHE_TEST_APXS= \
/usr/local/smmtest/perl/bin/perl -Iblib/arch -Iblib/lib \
t/TEST -bugreport -verbose=0
[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/local/smmtest/perl/bin/perl
/tmp/mod_perl-2.0.4/t/TEST -bugreport -verbose=0
[warning] root mode: changing the files ownership to 'nobody' (99:99)
[warning] testing whether 'nobody' is able to -rwx /tmp/mod_perl-2.0.4/t
"/usr/local/smmtest/perl/bin/perl"
-Mlib=/tmp/mod_perl-2.0.4/Apache-Test/lib -MApache::TestRun -e 'eval {
Apache::TestRun::run_root_fs_test(99, 99, q[/tmp/mod_perl-2.0.4/t]) }';
[warning] result: OK
[warning] the client side drops 'root' permissions and becomes 'nobody'
/usr/local/smmtest/apache/bin/httpd -d /tmp/mod_perl-2.0.4/t -f
/tmp/mod_perl-2.0.4/t/conf/httpd.conf -D APACHE2 -D PERL_USEITHREADS
using Apache/2.0.63 (prefork MPM)
waiting 120 seconds for server to start: .ap_get_server_banner() not
available until httpd/2.2.4 falling back to ap_get_server_version() at
/usr/local/smmtest/perl/lib/5.8.8/x86_64-linux-thread-multi/DynaLoader.p
m line 253.
ap_get_server_description() not available until httpd/2.2.4 falling back
to ap_get_server_version() at
/usr/local/smmtest/perl/lib/5.8.8/x86_64-linux-thread-multi/DynaLoader.p
m line 253.
[Tue May 13 10:06:22 2008] [info] 6 Apache2:: modules loaded
[Tue May 13 10:06:22 2008] [info] 0 APR:: modules loaded
[Tue May 13 10:06:22 2008] [info] base server + 28 vhosts ready to run
tests
ap_get_server_banner() not available until httpd/2.2.4 falling back to
ap_get_server_version() at
/usr/local/smmtest/perl/lib/5.8.8/x86_64-linux-thread-multi/DynaLoader.p
m line 253.
ap_get_server_description() not available until httpd/2.2.4 falling back
to ap_get_server_version() at
/usr/local/smmtest/perl/lib/5.8.8/x86_64-linux-thread-multi/DynaLoader.p
m line 253.
.
waiting 120 seconds for server to start: ok (waited 0 secs)
server vm-test1:8529 started
server vm-test1:8530 listening (filter_out_apache)
server vm-test1:8531 listening (perlsections)
server vm-test1:8532 listening (inherit)
server vm-test1:8533 listening (TestModperl::setupenv)
server vm-test1:8534 listening (TestModperl::merge)
server vm-test1:8535 listening (TestModperl::perl_options)
server vm-test1:8536 listening (TestModperl::perl_options2)
server vm-test1:8537 listening (TestVhost::log)
server vm-test1:8538 listening (TestVhost::config)
server vm-test1:8539 listening (TestModules::proxy)
server vm-test1:8540 listening (TestUser::rewrite)
server vm-test1:8541 listening (TestProtocol::echo_nonblock)
server vm-test1:8542 listening (TestProtocol::echo_bbs2)
server vm-test1:8543 listening (TestProtocol::echo_timeout)
server vm-test1:8544 listening (TestProtocol::pseudo_http)
server vm-test1:8545 listening (TestProtocol::echo_block)
server vm-test1:8546 listening (TestProtocol::echo_filter)
server vm-test1:8547 listening (TestProtocol::echo_bbs)
server vm-test1:8548 listening (TestPreConnection::note)
server vm-test1:8549 listening (TestHooks::stacked_handlers2)
server vm-test1:8550 listening (TestHooks::hookrun)
server vm-test1:8551 listening (TestHooks::trans)
server vm-test1:8552 listening (TestHooks::init)
server vm-test1:8553 listening (TestHooks::startup)
server vm-test1:8554 listening (TestFilter::in_bbs_msg)
server vm-test1:8555 listening (TestFilter::in_str_msg)
server vm-test1:8556 listening (TestFilter::in_bbs_inject_header)
server vm-test1:8557 listening (TestFilter::both_str_con_add)
server vm-test1:8558 listening (TestDirective::perlrequire)
server vm-test1:8559 listening (TestDirective::perlmodule)
server vm-test1:8560 listening (TestDirective::perlloadmodule3)
server vm-test1:8561 listening (TestDirective::perlloadmodule5)
server vm-test1:8562 listening (TestDirective::perlloadmodule4)
server vm-test1:8563 listening (TestAPI::add_config)
server vm-test1:8564 listening (TestDirective::perlloadmodule6)
server vm-test1:8565 listening (TestHooks::push_handlers_anon)
still waiting for server to warm up: .............
While we wait for the 120-second timeout, I can see this:
[root@vm-test1 ~]# ps ax | grep httpd
23498 ? Ss 0:00 /usr/local/smmtest/apache/bin/httpd -d
/tmp/mod_perl-2.0.4/t -f /tmp/mod_perl-2.0.4/t/conf/httpd.conf -D
APACHE2 -D PERL_USEITHREADS
23502 ? S 0:00 /usr/local/smmtest/apache/bin/httpd -d
/tmp/mod_perl-2.0.4/t -f /tmp/mod_perl-2.0.4/t/conf/httpd.conf -D
APACHE2 -D PERL_USEITHREADS
23503 ? S 0:00 /usr/local/smmtest/apache/bin/httpd -d
/tmp/mod_perl-2.0.4/t -f /tmp/mod_perl-2.0.4/t/conf/httpd.conf -D
APACHE2 -D PERL_USEITHREADS
23535 pts/1 S+ 0:00 grep httpd
And this:
[root@vm-test1 ~]# netstat -ltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address
State PID/Program name
tcp 0 0 *:8544 *:*
LISTEN 23498/httpd
tcp 0 0 *:8545 *:*
LISTEN 23498/httpd
tcp 0 0 *:8546 *:*
LISTEN 23498/httpd
tcp 0 0 *:8547 *:*
LISTEN 23498/httpd
tcp 0 0 *:8548 *:*
LISTEN 23498/httpd
tcp 0 0 *:8549 *:*
LISTEN 23498/httpd
tcp 0 0 *:8550 *:*
LISTEN 23498/httpd
tcp 0 0 *:8551 *:*
LISTEN 23498/httpd
tcp 0 0 *:8552 *:*
LISTEN 23498/httpd
tcp 0 0 *:8553 *:*
LISTEN 23498/httpd
tcp 0 0 *:rtsp-alt *:*
LISTEN 23498/httpd
tcp 0 0 *:d-fence *:*
LISTEN 23498/httpd
tcp 0 0 *:8556 *:*
LISTEN 23498/httpd
tcp 0 0 *:8557 *:*
LISTEN 23498/httpd
tcp 0 0 *:8558 *:*
LISTEN 23498/httpd
tcp 0 0 *:8559 *:*
LISTEN 23498/httpd
tcp 0 0 *:8560 *:*
LISTEN 23498/httpd
tcp 0 0 *:8529 *:*
LISTEN 23498/httpd
tcp 0 0 *:8561 *:*
LISTEN 23498/httpd
tcp 0 0 *:8530 *:*
LISTEN 23498/httpd
tcp 0 0 *:8562 *:*
LISTEN 23498/httpd
tcp 0 0 *:8563 *:*
LISTEN 23498/httpd
tcp 0 0 *:8531 *:*
LISTEN 23498/httpd
tcp 0 0 *:8564 *:*
LISTEN 23498/httpd
tcp 0 0 *:8532 *:*
LISTEN 23498/httpd
tcp 0 0 *:8533 *:*
LISTEN 23498/httpd
tcp 0 0 *:8565 *:*
LISTEN 23498/httpd
tcp 0 0 *:8534 *:*
LISTEN 23498/httpd
tcp 0 0 *:8535 *:*
LISTEN 23498/httpd
tcp 0 0 *:8536 *:*
LISTEN 23498/httpd
tcp 0 0 *:8537 *:*
LISTEN 23498/httpd
tcp 0 0 *:8538 *:*
LISTEN 23498/httpd
tcp 0 0 *:8539 *:*
LISTEN 23498/httpd
tcp 0 0 *:8540 *:*
LISTEN 23498/httpd
tcp 0 0 *:8541 *:*
LISTEN 23498/httpd
tcp 0 0 *:8542 *:*
LISTEN 23498/httpd
tcp 0 0 *:8543 *:*
LISTEN 23498/httpd
tcp 0 0 *:ssh *:*
LISTEN 1248/sshd
So, the apache servers that are being used for running the test actually
start, but the test suite fails to connect to them. The processes are
still there after the timeout: "the server is down, giving up after 121
secs". If I run "make test" a second time, then the test suite is run
and all tests are completed successfully.
The log files contain no relevant information.
The system in this case is RHEL 5 64bit, but we experience the same
hiccup on RHEL 4 32bit as well.
Anybody have a clue about why this is happening?
Best regards,
Jens-Petter Salvesen
Senior developer
RE: Make test fails, fails to connect
Posted by Jens Petter Salvesen <je...@experian-da.no>.
Hi, Fred
>Jens Petter Salvesen wrote:
>> The system in this case is RHEL 5 64bit, but we experience the same
>> hiccup on RHEL 4 32bit as well.
>>
>> Anybody have a clue about why this is happening?
>
>I've seen this happen when the tests tried to load an httpd module that
>wasn't in the build, but this could be happening for a different
>reasons, so maybe I have a small clue :)
>
>Can you post the output of 'httpd -l', and any LoadModule directives
>that you are using? I'm in the process of setting up a virtual build
>farm so I could try this with Centos 4 (don't have RHEL, but they are
>pretty much the same).
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c
I'm compiling httpd 2.0.63, and I'm using configuring apache with
options
--enable-so --prefix=/usr/local/smmtest/apache --with-expat=builtin
--enable-lib64
, so the rest is just standard out-of-the-box apache defaults.
Oh, and I've completely removed apache and mod_perl from the system:
[root@vm-test1 ~]# rpm -qa | grep -i httpd
[root@vm-test1 ~]# rpm -qa | grep -i mod_perl
Best regards,
Jens-Petter
Re: Make test fails, fails to connect
Posted by Fred Moyer <fr...@redhotpenguin.com>.
Jens Petter Salvesen wrote:
> The system in this case is RHEL 5 64bit, but we experience the same
> hiccup on RHEL 4 32bit as well.
>
> Anybody have a clue about why this is happening?
I've seen this happen when the tests tried to load an httpd module that
wasn't in the build, but this could be happening for a different
reasons, so maybe I have a small clue :)
Can you post the output of 'httpd -l', and any LoadModule directives
that you are using? I'm in the process of setting up a virtual build
farm so I could try this with Centos 4 (don't have RHEL, but they are
pretty much the same).