You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Joshua Hoblitt <jh...@ifa.hawaii.edu> on 2007/03/24 04:24:36 UTC

Apache2::compat from mod_perl 2.0.3 -- multiple issues

It seems that compat.pm isn't 'use strict' clean even thou it is declaring this
pragma.

    #     Error:  Bareword "Apache2::ServerUtil::server_root" not allowed while "strict subs" in use at /usr/lib/perl5/site_perl/5.8.8/i686-linux/Apache2/compat.pm line 347, <DATA> line 9.

This error is caused by 'Apache2::ServerUtil::server_root' (note that
missing '()') and this repeated in several places through-out compat.pm.

Commenting out the 'use strict' at the top of compat.om reveals another more
serious error:

    #     Error:  Undefined subroutine &Apache2::ServerUtil::restart_count called at /usr/lib/perl5/site_perl/5.8.8/i686-linux/Apache2/compat.pm line 76, <DATA> line 9.

Which I assume is supposed to be provided by ServerUtil.so except that this
symbol isn't defined in this lib.

    nm ./Apache2/ServerUtil/ServerUtil.so | grep restart
    00001cf0 T XS_Apache2__ServerUtil_restart_count
             U modperl_restart_count

Any ideas as to what might have gone wrong in the build?

-J

--

Re: Apache2::compat from mod_perl 2.0.3 -- multiple issues

Posted by Joshua Hoblitt <jh...@ifa.hawaii.edu>.
On Mon, Mar 26, 2007 at 09:02:09AM -0400, Geoffrey Young wrote:
> Joshua Hoblitt wrote:
> > This error is caused by 'Apache2::ServerUtil::server_root' (note that
> >  missing '()') and this repeated in several places through-out
> > compat.pm.
> 
> you are not the first to report this, but I guess we've let it slip
> until now.  fixed in svn.  thanks.

I can confirm that this is now fixed for me.  Thanks!

> > Commenting out the 'use strict' at the top of compat.om reveals
> > another more serious error:
> > 
> > #     Error:  Undefined subroutine
> > &Apache2::ServerUtil::restart_count called at
> > /usr/lib/perl5/site_perl/5.8.8/i686-linux/Apache2/compat.pm line 76,
> > <DATA> line 9.
> > 
> > Which I assume is supposed to be provided by ServerUtil.so except
> > that this symbol isn't defined in this lib.
> > 
> > nm ./Apache2/ServerUtil/ServerUtil.so | grep restart 00001cf0 T
> > XS_Apache2__ServerUtil_restart_count U modperl_restart_count
> > 
> > Any ideas as to what might have gone wrong in the build?
> 
> that's strange.  did all tests pass for you?  we explicitly exercise
> this in several of the test scripts.
> 
> keep in mind that lots of this stuff won't work if you just do something
> like
> 
>   $ perl -cw lib/Apache2/compat.pm
> 
> you really need to call it from within a live, running mod_perl
> environment.  if you are, please consider sending along a minimal test
> case that reproduces the issue.  see http://perl.apache.org/bugs/

All of the tests (a few are skipped because of missing deps) are passing
for me.  It looks like the only test from my application that fails with
this error under Apache::TestMB is from Test::Distribution, which 'eval
"require ...;"'s the module in.  I think we can safely consider this a
red herring (although it would be nice is Apache2::ServerUtil died more
politely when not run under mod_perl).

Cheers,

-J

--

Re: Apache2::compat from mod_perl 2.0.3 -- multiple issues

Posted by Geoffrey Young <ge...@modperlcookbook.org>.
Joshua Hoblitt wrote:
> It seems that compat.pm isn't 'use strict' clean even thou it is
> declaring this pragma.
> 
> #     Error:  Bareword "Apache2::ServerUtil::server_root" not allowed
> while "strict subs" in use at
> /usr/lib/perl5/site_perl/5.8.8/i686-linux/Apache2/compat.pm line 347,
> <DATA> line 9.
> 
> This error is caused by 'Apache2::ServerUtil::server_root' (note that
>  missing '()') and this repeated in several places through-out
> compat.pm.

you are not the first to report this, but I guess we've let it slip
until now.  fixed in svn.  thanks.

> 
> Commenting out the 'use strict' at the top of compat.om reveals
> another more serious error:
> 
> #     Error:  Undefined subroutine
> &Apache2::ServerUtil::restart_count called at
> /usr/lib/perl5/site_perl/5.8.8/i686-linux/Apache2/compat.pm line 76,
> <DATA> line 9.
> 
> Which I assume is supposed to be provided by ServerUtil.so except
> that this symbol isn't defined in this lib.
> 
> nm ./Apache2/ServerUtil/ServerUtil.so | grep restart 00001cf0 T
> XS_Apache2__ServerUtil_restart_count U modperl_restart_count
> 
> Any ideas as to what might have gone wrong in the build?

that's strange.  did all tests pass for you?  we explicitly exercise
this in several of the test scripts.

keep in mind that lots of this stuff won't work if you just do something
like

  $ perl -cw lib/Apache2/compat.pm

you really need to call it from within a live, running mod_perl
environment.  if you are, please consider sending along a minimal test
case that reproduces the issue.  see http://perl.apache.org/bugs/

--Geoff