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)

 

[EMAIL PROTECTED] 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:

 

[EMAIL PROTECTED] ~]# 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:

[EMAIL PROTECTED] ~]# 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

Reply via email to