Mod_perl 'make test' failing

When building mod_perl 1.29 according to Ruslan’s instructions at
http://wiki.bestpractical.com/index.cgi?ManualApache, the 'make test’
step is failing. I’m not sure what to make of the errors, and I
thought I’d ask about it before digging in.

Note: a couple days ago I upgraded Perl from 5.8.3 to 5.8.6, and I am
in the process of upgrading Apache to 1.3.33, all happening on Mac OS X
10.3. (Before upgrading Perl, I took a bundle snapshot, and afterwards
I installed that bundle.)

Also note: I followed Ruslan’s directions except for my Apache
configure command, which was:

./configure
“–with-layout=Apache”
“–enable-module=so”
“–activate-module=src/modules/perl/libperl.a”
“–disable-rule=EXPAT”
“–disable-shared=perl”
“–without-execstrip”
“–enable-module=proxy”
“–disable-shared=proxy”
“–enable-module=rewrite”

The output of ‘make test’ follows, and below that is the contents of
t/logs/error_log.

Thanks,
Kevin Murphy

$ make test
[*** bunch of skipped copy commands, and builds of Apache::Leak and
Apache::Symbol stuff ***]
…/apache_1.3.33/src/httpd -f pwd/t/conf/httpd.conf -X -d pwd/t &
httpd listening on port 8529
will write error_log to: t/logs/error_log
letting apache warm up…\c
done
/usr/local/bin/perl t/TEST 0
modules/actions…ok
modules/cgi…ok
modules/constants…ok
modules/cookie…FAILED before any test output arrived
modules/file…FAILED before any test output arrived
modules/httpdconf…ok
modules/include…FAILED before any test output arrived
modules/log…FAILED before any test output arrived
modules/module…skipped
all skipped: no reason given
modules/perlrun…Useless content call in void context at
…/blib/lib/Apache/testold.pm line 252
FAILED before any test output arrived
modules/psections…skipped
all skipped: no reason given
modules/request…Use of uninitialized value in numeric eq (==) at
modules/request.t line 147.
Use of uninitialized value in concatenation (.) or string at
modules/request.t line 147.
Use of uninitialized value in numeric eq (==) at modules/request.t line
149.
Use of uninitialized value in numeric eq (==) at modules/request.t line
147.
Use of uninitialized value in concatenation (.) or string at
modules/request.t line 147.
Use of uninitialized value in numeric eq (==) at modules/request.t line
149.
Use of uninitialized value in numeric eq (==) at modules/request.t line
147.
Use of uninitialized value in concatenation (.) or string at
modules/request.t line 147.
Use of uninitialized value in numeric eq (==) at modules/request.t line
149.
Use of uninitialized value in numeric eq (==) at modules/request.t line
147.
Use of uninitialized value in concatenation (.) or string at
modules/request.t line 147.
Use of uninitialized value in numeric eq (==) at modules/request.t line
149.
modules/request…FAILED tests 1-10
Failed 10/10 tests, 0.00% okay
modules/src…ok
modules/ssi…skipped
all skipped: no reason given
modules/stage…skipped
all skipped: no reason given
modules/status…fetch /perl/perl-status failed!
modules/status…dubious
Test returned status 22 (wstat 5632, 0x1600)
DIED. FAILED tests 1-7
Failed 7/7 tests, 0.00% okay
modules/symbol…skipped
all skipped: no reason given
modules/uri…FAILED before any test output arrived
modules/util…FAILED before any test output arrived
internal/api…FAILED before any test output arrived
internal/auth…FAILED test 1
Failed 1/2 tests, 50.00% okay
internal/croak…FAILED tests 1, 3-4, 6-7, 9-10, 12
Failed 8/12 tests, 33.33% okay
internal/dirmagic…FAILED before any test output arrived
internal/error…ok
internal/headers…Argument “500 Can’t connect to localhost:8529
(connect: Invalid ar…” isn’t numeric in numeric eq (==) at
internal/headers.t line 29.
Argument "500 Can’t connect to localhost:8529 (connect: Invalid ar…"
isn’t numeric in numeric eq (==) at internal/headers.t line 29.
Argument "500 Can’t connect to localhost:8529 (connect: Invalid ar…"
isn’t numeric in numeric eq (==) at internal/headers.t line 29.
Argument "500 Can’t connect to localhost:8529 (connect: Invalid ar…"
isn’t numeric in numeric eq (==) at internal/headers.t line 29.
Use of uninitialized value in string eq at internal/headers.t line 42.
Use of uninitialized value in string eq at internal/headers.t line 48.
Use of uninitialized value in string eq at internal/headers.t line 54.
internal/headers…FAILED tests 1-11
Failed 11/13 tests, 15.38% okay
internal/hooks…500 (Internal Server Error) Can’t connect to
localhost:8529 (connect: Invalid argument)
Content-Type: text/plain
Client-Date: Tue, 01 Feb 2005 16:06:19 GMT
Client-Warning: Internal response

500 Can’t connect to localhost:8529 (connect: Invalid argument)

internal/hooks…dubious
Test returned status 22 (wstat 5632, 0x1600)
internal/http-get…Internal Server Error
internal/http-get…dubious
Test returned status 22 (wstat 5632, 0x1600)
DIED. FAILED tests 1-16
Failed 16/16 tests, 0.00% okay
internal/http-post…Internal Server Error
internal/http-post…dubious
Test returned status 22 (wstat 5632, 0x1600)
DIED. FAILED tests 1-7
Failed 7/7 tests, 0.00% okay
internal/proxy…ok
internal/redirect…FAILED tests 1-4, 6
Failed 5/6 tests, 16.67% okay
internal/rwrite…FAILED tests 1-2
Failed 2/2 tests, 0.00% okay
internal/stacked…can’t open http://localhost:8529//perl/stacked
internal/stacked…dubious
Test returned status 22 (wstat 5632, 0x1600)
internal/table…FAILED before any test output arrived
internal/taint…Internal Server Error
internal/taint…dubious
Test returned status 22 (wstat 5632, 0x1600)
DIED. FAILED tests 1-3
Failed 3/3 tests, 0.00% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
internal/api.t ?? ?? % ??
internal/auth.t 2 1 50.00% 1
internal/croak.t 12 8 66.67% 1 3-4 6-7 9-10 12
internal/dirmagic.t ?? ?? % ??
internal/headers.t 13 11 84.62% 1-11
internal/hooks.t 22 5632 ?? ?? % ??
internal/http-get.t 22 5632 16 32 200.00% 1-16
internal/http-post.t 22 5632 7 14 200.00% 1-7
internal/redirect.t 6 5 83.33% 1-4 6
internal/rwrite.t 2 2 100.00% 1-2
internal/stacked.t 22 5632 ?? ?? % ??
internal/table.t ?? ?? % ??
internal/taint.t 22 5632 3 6 200.00% 1-3
modules/cookie.t ?? ?? % ??
modules/file.t ?? ?? % ??
modules/include.t ?? ?? % ??
modules/log.t ?? ?? % ??
modules/perlrun.t ?? ?? % ??
modules/request.t 10 10 100.00% 1-10
modules/status.t 22 5632 7 14 200.00% 1-7
modules/uri.t ?? ?? % ??
modules/util.t ?? ?? % ??
5 tests skipped.
sh: kill: (11834) - No such process
httpd terminated
Failed 22/34 test scripts, 35.29% okay. 70/176 subtests failed, 60.23%
okay.
make: *** [run_tests] Error 1
$

t/logs/error_log shows:

[notice] Destruction->DESTROY called for $global_object
Subroutine fileparse_set_fstype redefined at
/usr/local/lib/perl5/5.8.6/File/Basename.pm line 157.
Subroutine fileparse redefined at
/usr/local/lib/perl5/5.8.6/File/Basename.pm line 171.
Subroutine basename redefined at
/usr/local/lib/perl5/5.8.6/File/Basename.pm line 238.
Subroutine dirname redefined at
/usr/local/lib/perl5/5.8.6/File/Basename.pm line 251.
Subroutine import redefined at /usr/local/lib/perl5/5.8.6/darwin/IO.pm
line 13.
Constant subroutine CGI::XHTML_DTD redefined at
/usr/local/lib/perl5/5.8.6/constant.pm line 108.
[Tue Feb 1 11:06:10 2005] [warn] [notice] child_init for process
11834, report any problems to [no address given]\n
dyld: …/apache_1.3.33/src/httpd multiple definitions of symbol
_ApacheRequest___parse
/usr/local/lib/perl5/site_perl/5.8.6/darwin/auto/Apache/Request/
Request.bundle definition of _ApacheRequest___parse
/usr/local/lib/perl5/site_perl/5.8.6/darwin/auto/Apache/Cookie/
Cookie.bundle definition of _ApacheRequest___parse

If perl is configured to use CPAN, you should be able to run a ‘make
fixdeps’ from in the rt source dir and cpan will straighten everything out
for you.

Aubrey King
Global Crossing, Ltd.
IP Systems Engineering
Systems AdministratorOn Tue, 1 Feb 2005, Kevin Murphy wrote:

When building mod_perl 1.29 according to Ruslan’s instructions at
http://wiki.bestpractical.com/index.cgi?ManualApache, the ‘make test’ step is
failing. I’m not sure what to make of the errors, and I thought I’d ask
about it before digging in.

Note: a couple days ago I upgraded Perl from 5.8.3 to 5.8.6, and I am in the
process of upgrading Apache to 1.3.33, all happening on Mac OS X 10.3.
(Before upgrading Perl, I took a bundle snapshot, and afterwards I installed
that bundle.)

Also note: I followed Ruslan’s directions except for my Apache configure
command, which was:

./configure
“–with-layout=Apache”
“–enable-module=so”
“–activate-module=src/modules/perl/libperl.a”
“–disable-rule=EXPAT”
“–disable-shared=perl”
“–without-execstrip”
“–enable-module=proxy”
“–disable-shared=proxy”
“–enable-module=rewrite”

The output of ‘make test’ follows, and below that is the contents of
t/logs/error_log.

Thanks,
Kevin Murphy

$ make test
[*** bunch of skipped copy commands, and builds of Apache::Leak and
Apache::Symbol stuff ***]
…/apache_1.3.33/src/httpd -f pwd/t/conf/httpd.conf -X -d pwd/t &
httpd listening on port 8529
will write error_log to: t/logs/error_log
letting apache warm up…\c
done
/usr/local/bin/perl t/TEST 0
modules/actions…ok
modules/cgi…ok
modules/constants…ok
modules/cookie…FAILED before any test output arrived
modules/file…FAILED before any test output arrived
modules/httpdconf…ok
modules/include…FAILED before any test output arrived
modules/log…FAILED before any test output arrived
modules/module…skipped
all skipped: no reason given
modules/perlrun…Useless content call in void context at
…/blib/lib/Apache/testold.pm line 252
FAILED before any test output arrived
modules/psections…skipped
all skipped: no reason given
modules/request…Use of uninitialized value in numeric eq (==) at
modules/request.t line 147.
Use of uninitialized value in concatenation (.) or string at
modules/request.t line 147.
Use of uninitialized value in numeric eq (==) at modules/request.t line 149.
Use of uninitialized value in numeric eq (==) at modules/request.t line 147.
Use of uninitialized value in concatenation (.) or string at
modules/request.t line 147.
Use of uninitialized value in numeric eq (==) at modules/request.t line 149.
Use of uninitialized value in numeric eq (==) at modules/request.t line 147.
Use of uninitialized value in concatenation (.) or string at
modules/request.t line 147.
Use of uninitialized value in numeric eq (==) at modules/request.t line 149.
Use of uninitialized value in numeric eq (==) at modules/request.t line 147.
Use of uninitialized value in concatenation (.) or string at
modules/request.t line 147.
Use of uninitialized value in numeric eq (==) at modules/request.t line 149.
modules/request…FAILED tests 1-10
Failed 10/10 tests, 0.00% okay
modules/src…ok
modules/ssi…skipped
all skipped: no reason given
modules/stage…skipped
all skipped: no reason given
modules/status…fetch /perl/perl-status failed!
modules/status…dubious
Test returned status 22 (wstat 5632, 0x1600)
DIED. FAILED tests 1-7
Failed 7/7 tests, 0.00% okay
modules/symbol…skipped
all skipped: no reason given
modules/uri…FAILED before any test output arrived
modules/util…FAILED before any test output arrived
internal/api…FAILED before any test output arrived
internal/auth…FAILED test 1
Failed 1/2 tests, 50.00% okay
internal/croak…FAILED tests 1, 3-4, 6-7, 9-10, 12
Failed 8/12 tests, 33.33% okay
internal/dirmagic…FAILED before any test output arrived
internal/error…ok
internal/headers…Argument “500 Can’t connect to localhost:8529 (connect:
Invalid ar…” isn’t numeric in numeric eq (==) at internal/headers.t line
29.
Argument “500 Can’t connect to localhost:8529 (connect: Invalid ar…” isn’t
numeric in numeric eq (==) at internal/headers.t line 29.
Argument “500 Can’t connect to localhost:8529 (connect: Invalid ar…” isn’t
numeric in numeric eq (==) at internal/headers.t line 29.
Argument “500 Can’t connect to localhost:8529 (connect: Invalid ar…” isn’t
numeric in numeric eq (==) at internal/headers.t line 29.
Use of uninitialized value in string eq at internal/headers.t line 42.
Use of uninitialized value in string eq at internal/headers.t line 48.
Use of uninitialized value in string eq at internal/headers.t line 54.
internal/headers…FAILED tests 1-11
Failed 11/13 tests, 15.38% okay
internal/hooks…500 (Internal Server Error) Can’t connect to
localhost:8529 (connect: Invalid argument)
Content-Type: text/plain
Client-Date: Tue, 01 Feb 2005 16:06:19 GMT
Client-Warning: Internal response

500 Can’t connect to localhost:8529 (connect: Invalid argument)

internal/hooks…dubious
Test returned status 22 (wstat 5632, 0x1600)
internal/http-get…Internal Server Error
internal/http-get…dubious
Test returned status 22 (wstat 5632, 0x1600)
DIED. FAILED tests 1-16
Failed 16/16 tests, 0.00% okay
internal/http-post…Internal Server Error
internal/http-post…dubious
Test returned status 22 (wstat 5632, 0x1600)
DIED. FAILED tests 1-7
Failed 7/7 tests, 0.00% okay
internal/proxy…ok
internal/redirect…FAILED tests 1-4, 6
Failed 5/6 tests, 16.67% okay
internal/rwrite…FAILED tests 1-2
Failed 2/2 tests, 0.00% okay
internal/stacked…can’t open http://localhost:8529//perl/stacked
internal/stacked…dubious
Test returned status 22 (wstat 5632, 0x1600)
internal/table…FAILED before any test output arrived
internal/taint…Internal Server Error
internal/taint…dubious
Test returned status 22 (wstat 5632, 0x1600)
DIED. FAILED tests 1-3
Failed 3/3 tests, 0.00% okay
Failed Test Stat Wstat Total Fail Failed List of Failed



internal/api.t ?? ?? % ??
internal/auth.t 2 1 50.00% 1
internal/croak.t 12 8 66.67% 1 3-4 6-7 9-10 12
internal/dirmagic.t ?? ?? % ??
internal/headers.t 13 11 84.62% 1-11
internal/hooks.t 22 5632 ?? ?? % ??
internal/http-get.t 22 5632 16 32 200.00% 1-16
internal/http-post.t 22 5632 7 14 200.00% 1-7
internal/redirect.t 6 5 83.33% 1-4 6
internal/rwrite.t 2 2 100.00% 1-2
internal/stacked.t 22 5632 ?? ?? % ??
internal/table.t ?? ?? % ??
internal/taint.t 22 5632 3 6 200.00% 1-3
modules/cookie.t ?? ?? % ??
modules/file.t ?? ?? % ??
modules/include.t ?? ?? % ??
modules/log.t ?? ?? % ??
modules/perlrun.t ?? ?? % ??
modules/request.t 10 10 100.00% 1-10
modules/status.t 22 5632 7 14 200.00% 1-7
modules/uri.t ?? ?? % ??
modules/util.t ?? ?? % ??
5 tests skipped.
sh: kill: (11834) - No such process
httpd terminated
Failed 22/34 test scripts, 35.29% okay. 70/176 subtests failed, 60.23% okay.
make: *** [run_tests] Error 1
$

t/logs/error_log shows:

[notice] Destruction->DESTROY called for $global_object
Subroutine fileparse_set_fstype redefined at
/usr/local/lib/perl5/5.8.6/File/Basename.pm line 157.
Subroutine fileparse redefined at /usr/local/lib/perl5/5.8.6/File/Basename.pm
line 171.
Subroutine basename redefined at /usr/local/lib/perl5/5.8.6/File/Basename.pm
line 238.
Subroutine dirname redefined at /usr/local/lib/perl5/5.8.6/File/Basename.pm
line 251.
Subroutine import redefined at /usr/local/lib/perl5/5.8.6/darwin/IO.pm line
13.
Constant subroutine CGI::XHTML_DTD redefined at
/usr/local/lib/perl5/5.8.6/constant.pm line 108.
[Tue Feb 1 11:06:10 2005] [warn] [notice] child_init for process 11834,
report any problems to [no address given]\n
dyld: …/apache_1.3.33/src/httpd multiple definitions of symbol
_ApacheRequest___parse
/usr/local/lib/perl5/site_perl/5.8.6/darwin/auto/Apache/Request/
Request.bundle definition of _ApacheRequest___parse
/usr/local/lib/perl5/site_perl/5.8.6/darwin/auto/Apache/Cookie/Cookie.bundle
definition of _ApacheRequest___parse


http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

RT Administrator and Developer training is coming to your town soon! (Boston,
San Francisco, Austin, Sydney) Contact training@bestpractical.com for
details.

Be sure to check out the RT Wiki at http://wiki.bestpractical.com

If perl is configured to use CPAN, you should be able to run a ‘make
fixdeps’ from in the rt source dir and cpan will straighten everything
out for you.

Thanks for the suggestion, but it doesn’t seem apropos here. In the RT
installation procedure, my problem occurs prior to what you’re talking
about. Mine isn’t an RT issue, but since Ruslan hangs out here, and
other RT users might run into the same issue, I thought it was worth
posting on this list.

Kevin Murphy

Is your new perl in same location as old one? Did you overwrite old perl
exec binary file with new one? If you run perl -V is it new one?
My perl is allways is /usr/bin/perl so I didn’t test build process with
two different perls in different locations.

I saw next:
[apache_1.3.31]$ ./configure --help | grep -i perl
–with-perl=FILE path to the optional Perl interpreter

and also when you run ‘perl Makefile.PL’ you should use that perl exec
file that you want to build against. So if you have new perl in
’/usr/local/bin/perl’ then try to add '–with-perl=/usr/local/bin/perl’
to apache configure args and run /usr/local/bin/perl Makefile.PL in
mod_perl dir.

			Best regards. Ruslan.

Kevin Murphy wrote:

Is your new perl in same location as old one? Did you overwrite old
perl exec binary file with new one? If you run perl -V is it new
one?
My perl is allways is /usr/bin/perl so I didn’t test build process
with two different perls in different locations.
When you run ‘perl Makefile.PL’ you should use that perl exec file
that you want to build against. So if you have new perl in
’/usr/local/bin/perl’ then try to add
’–with-perl=/usr/local/bin/perl’ to apache configure args and run
/usr/local/bin/perl Makefile.PL in mod_perl dir.

Ah, my new perl is where my old perl was (/usr/local/bin/perl), but the
vendor perl (5.8.0) is still in /usr/bin/perl. I tried your
suggestions, but the result was the same. Then I moved /usr/bin/perl
and created a link there to /usr/local/bin/perl and retried everything
– same bad result.

I looked at where the test code was failing, and I saw that
Apache::Request was being used, so I figured libapreq might need
updating.

I attempted to do that right now, but its tests failed also (it doesn’t
like being tested with old apache or with newer apache with libapreq
compiled in). I forced it to install just to see what would happen,
but mod_perl is still failing its test.

Arghh.

Thanks for the suggestions.

Kevin Murphy

Kevin, better send report to mod_perl users mailing list.

And also google:
http://www.google.ru/search?q=installing+mod_perl+on+Mac+OS

For example next article may help:
http://www.macdevcenter.com/pub/a/mac/2002/11/05/apache_osx.html

Kevin Murphy wrote:> On Feb 1, 2005, at 12:19 PM, Ruslan U. Zakirov wrote:

Is your new perl in same location as old one? Did you overwrite old
perl exec binary file with new one? If you run perl -V is it new one?
My perl is allways is /usr/bin/perl so I didn’t test build process
with two different perls in different locations.
When you run ‘perl Makefile.PL’ you should use that perl exec file
that you want to build against. So if you have new perl in
’/usr/local/bin/perl’ then try to add
’–with-perl=/usr/local/bin/perl’ to apache configure args and run
/usr/local/bin/perl Makefile.PL in mod_perl dir.

Ah, my new perl is where my old perl was (/usr/local/bin/perl), but the
vendor perl (5.8.0) is still in /usr/bin/perl. I tried your
suggestions, but the result was the same. Then I moved /usr/bin/perl
and created a link there to /usr/local/bin/perl and retried everything
– same bad result.

I looked at where the test code was failing, and I saw that
Apache::Request was being used, so I figured libapreq might need updating.

I attempted to do that right now, but its tests failed also (it doesn’t
like being tested with old apache or with newer apache with libapreq
compiled in). I forced it to install just to see what would happen, but
mod_perl is still failing its test.

Arghh.

Thanks for the suggestions.

Kevin Murphy