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).