Re: [RELEASE CANDIDATE]: mod_perl-2.0.5 RC2

2011-02-04 Thread Fred Moyer
On Thu, Feb 3, 2011 at 11:33 PM, David Dick  wrote:
> t/filter/both_str_req_mix.t           (Wstat: 65280 Tests: 0 Failed: 0)
>  Non-zero exit status: 255
>  Parse errors: Bad plan.  You planned 1 tests but ran 0.
>
> Fedora 14 comes with
>
> Apache/2.2.17 (Unix)
> perl-5.12.2-140

I was able to duplicate this issue with the release candidate.  I
installed httpd 2.2.17 from source (apr 1.4.2) and the test passed, so
I think there is some slight difference between the 2.2.17 rpm build
or configuration, and the build or config from source.

I removed the mod_perl-2.0.4 rpm (didn't know it was installed until I
checked), same results.

Given the complexity of this test (mixing multiple output filters in
order dependent fashion), I think we are ok to ship without it passing
in this case.  If anyone is using this feature, they are more
qualified than I am to debug this :)


Re: [RELEASE CANDIDATE]: mod_perl-2.0.5 RC2

2011-02-04 Thread Fred Moyer
I rolled an rpm for this RC that you might want to take for a spin.  I
had to modify the mod_perl.spec file to get rid of some
auto-dependencies that are non-sequitur, and this won't install any
conf files, but you should be able to install it on your FC14 machine,
I built it on a FC14 host.  Suggest you try it somewhere that is not
mission critical :)

http://people.apache.org/~phred/mod_perl-2.0.5-1.i386.rpm

On Thu, Feb 3, 2011 at 12:27 PM, David Dick  wrote:
> On 03/02/11 10:19, Fred Moyer wrote:
>>
>> There were some issues with dev versions of the Apache::* modules
>> being in RC1, so I branched 2.0.5, set the external targets to the
>> tagged stable releases of Apache::*, and rolled this second release
>> candidate.
>>
>> Please take this for a whirl and report back +/- 1.  I've got this
>> version running in all my production environments currently.
>>
>> http://people.apache.org/~phred/mod_perl-2.0.5-rc2.tar.gz
>>
>> md5sum - c5ba896a25ba52653836056b9bf34998
>>
>
> Fail on Fedora 14 (latest)
>
> Test Summary Report
> ---
> t/filter/both_str_req_mix.t           (Wstat: 65280 Tests: 0 Failed: 0)
>  Non-zero exit status: 255
>  Parse errors: Bad plan.  You planned 1 tests but ran 0.
>
> Fedora 14 comes with
>
> Apache/2.2.17 (Unix)
> perl-5.12.2-140
>


undefined symbol modperl_xs_sv2request_rec

2011-02-04 Thread Mark Hedges

A change in Module::Build recently brought it in line with
the behavior of ExtUtils::MakeMaker, which caused an error
to crop up in test cases:

# Error: Can't load 
'/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/APR/Request/Apache2/Apache2.so'
 for module APR::Request::Apache2: 
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/APR/Request/Apache2/Apache2.so:
 undefined symbol: modperl_xs_sv2request_rec at 
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.
# at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm 
line 3
# Compilation failed in require at 
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm line 
3.
# BEGIN failed--compilation aborted at 
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm line 
3.

... but only with `Build test` and not `prove -r t/`.

This is because $ENV{PERL_DL_NONLAZY} is now always set by
Module::Build::Base when running the test suite, which makes
it try to resolve all undefined symbols.

This only seems to happen in the test script trying to 'require'
packages that use Apache2::Request (libapreq2) but people seem
inclined to think it is a problem with mod_perl and not apreq.

Any ideas?  Thanks.  --mark--


-- Forwarded message --
Date: Thu, 3 Feb 2011 01:02:16 -0500
From: Michael G Schwern via RT 
To: mar...@cpan.org
Subject: Re: [rt.cpan.org #65382]

https://rt.cpan.org/Ticket/Display.html?id=65382 >

If that fixes it then you're likely papering over an error.

perlrun explains PERL_DL_NONLAZY and why you'd set it to true for tests.

   PERL_DL_NONLAZY
 Set to one to have perl resolve all undefined symbols when
 it loads a dynamic library.  The default behaviour is to
 resolve symbols when they are used.  Setting this variable
 is useful during testing of extensions as it ensures that
 you get an error on misspelled function names even if the
 test suite doesn't call it.

So the test is trying to tell you that modperl_xs_sv2request_rec is not
defined in your shared library.

Also, `prove -I blib` is not correct.  You want `prove -b` which will pull in
blib/lib and blib/arch.


On 2011.2.3 9:08 AM, Mark Hedges via RT wrote:
> It looks like this is the problem, or at least, this fixes it for me.
> Why does do_tests() need to explicitly set this?  --m--
>
> --- /usr/lib/perl5/site_perl/5.8.8/Module/Build/Base.pm.orig  2011-02-02
> 15:04:07.0 -0800
> +++ /usr/lib/perl5/site_perl/5.8.8/Module/Build/Base.pm   2011-02-02
> 15:07:21.0 -0800
> @@ -2667,8 +2667,6 @@
>
>my $tests = $self->find_test_files;
>
> -  local $ENV{PERL_DL_NONLAZY} = 1;
> -
>if(@$tests) {
>  my $args = $self->tap_harness_args;
>  if($self->use_tap_harness or ($args and %$args)) {



-- 
10. Not allowed to purchase anyone's soul on government time.
-- The 213 Things Skippy Is No Longer Allowed To Do In The U.S. Army
   http://skippyslist.com/list/



Re: undefined symbol modperl_xs_sv2request_rec

2011-02-04 Thread Mark Hedges

On Wed, 2 Feb 2011, Mark Hedges wrote:
>
> A change in Module::Build recently brought it in line with
> the behavior of ExtUtils::MakeMaker, which caused an error
> to crop up in test cases:
>
> # Error: Can't load 
> '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/APR/Request/Apache2/Apache2.so'
>  for module APR::Request::Apache2: 
> /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/APR/Request/Apache2/Apache2.so:
>  undefined symbol: modperl_xs_sv2request_rec at 
> /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.

BTW mod_perl 2.0.4 6.el5, perl 5.8.8 32.el5_5.2 CentOS --m--


Re: undefined symbol modperl_xs_sv2request_rec

2011-02-04 Thread Fred Moyer
Can you post the code and the httpd conf?

On Wed, Feb 2, 2011 at 10:28 PM, Mark Hedges  wrote:
>
> A change in Module::Build recently brought it in line with
> the behavior of ExtUtils::MakeMaker, which caused an error
> to crop up in test cases:
>
> # Error: Can't load 
> '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/APR/Request/Apache2/Apache2.so'
>  for module APR::Request::Apache2: 
> /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/APR/Request/Apache2/Apache2.so:
>  undefined symbol: modperl_xs_sv2request_rec at 
> /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.
> # at 
> /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm 
> line 3
> # Compilation failed in require at 
> /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm 
> line 3.
> # BEGIN failed--compilation aborted at 
> /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm 
> line 3.
>
> ... but only with `Build test` and not `prove -r t/`.
>
> This is because $ENV{PERL_DL_NONLAZY} is now always set by
> Module::Build::Base when running the test suite, which makes
> it try to resolve all undefined symbols.
>
> This only seems to happen in the test script trying to 'require'
> packages that use Apache2::Request (libapreq2) but people seem
> inclined to think it is a problem with mod_perl and not apreq.
>
> Any ideas?  Thanks.  --mark--
>
>
> -- Forwarded message --
> Date: Thu, 3 Feb 2011 01:02:16 -0500
> From: Michael G Schwern via RT 
> To: mar...@cpan.org
> Subject: Re: [rt.cpan.org #65382]
>
> https://rt.cpan.org/Ticket/Display.html?id=65382 >
>
> If that fixes it then you're likely papering over an error.
>
> perlrun explains PERL_DL_NONLAZY and why you'd set it to true for tests.
>
>       PERL_DL_NONLAZY
>         Set to one to have perl resolve all undefined symbols when
>         it loads a dynamic library.  The default behaviour is to
>         resolve symbols when they are used.  Setting this variable
>         is useful during testing of extensions as it ensures that
>         you get an error on misspelled function names even if the
>         test suite doesn't call it.
>
> So the test is trying to tell you that modperl_xs_sv2request_rec is not
> defined in your shared library.
>
> Also, `prove -I blib` is not correct.  You want `prove -b` which will pull in
> blib/lib and blib/arch.
>
>
> On 2011.2.3 9:08 AM, Mark Hedges via RT wrote:
>> It looks like this is the problem, or at least, this fixes it for me.
>> Why does do_tests() need to explicitly set this?  --m--
>>
>> --- /usr/lib/perl5/site_perl/5.8.8/Module/Build/Base.pm.orig  2011-02-02
>> 15:04:07.0 -0800
>> +++ /usr/lib/perl5/site_perl/5.8.8/Module/Build/Base.pm       2011-02-02
>> 15:07:21.0 -0800
>> @@ -2667,8 +2667,6 @@
>>
>>    my $tests = $self->find_test_files;
>>
>> -  local $ENV{PERL_DL_NONLAZY} = 1;
>> -
>>    if(@$tests) {
>>      my $args = $self->tap_harness_args;
>>      if($self->use_tap_harness or ($args and %$args)) {
>
>
>
> --
> 10. Not allowed to purchase anyone's soul on government time.
>    -- The 213 Things Skippy Is No Longer Allowed To Do In The U.S. Army
>           http://skippyslist.com/list/
>
>


Re: undefined symbol modperl_xs_sv2request_rec

2011-02-04 Thread Joe Schaefer
The next release of apreq will contain a package called
APR::Request::Magic, for apps that are meant to be portable
between cgi and mp2.  What you've reported isn't a bug in
apreq or mp2, it's a bug in how your app uses apreq. APR::Request::Apache2
shouldn't be used outside a running modperl server.  If
you change your code to use APR::Request::Magic, it'll
work in both contexts.

HTH



- Original Message 
> From: Mark Hedges 
> To: modperl@perl.apache.org
> Sent: Thu, February 3, 2011 4:06:59 PM
> Subject: undefined symbol modperl_xs_sv2request_rec
> 
> 
> A change in Module::Build recently brought it in line with
> the behavior  of ExtUtils::MakeMaker, which caused an error
> to crop up in test cases that  'require_ok'.
> 
> # Error: Can't load  
>'/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/APR/Request/Apache2/Apache2.so'
>  for module APR::Request::Apache2:  
>/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/APR/Request/Apache2/Apache2.so:
>  undefined symbol: modperl_xs_sv2request_rec at  
>/usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.
> # at  
> /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm 
>line  3
> # Compilation failed in require at  
>/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm line 
> 
>3.
> # BEGIN failed--compilation aborted at  
>/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm line 
> 
>3.
> 
> ... but only with `Build test` and not `prove -r t/`.
> 
> This is  because $ENV{PERL_DL_NONLAZY} is now always set by
> Module::Build::Base when  running the test suite, which makes
> it try to resolve all undefined  symbols.
> 
> This only seems to happen in the test script trying  to
> 'require' packages that use Apache2::Request (libapreq2) but
> people  seem inclined to think it is a problem with mod_perl
> and not  apreq.
> 
> mod_perl 2.0.4 6.el5, perl 5.8.8 32.el5_5.2 CentOS
> 
> Any  ideas?  Thanks.  --mark--
> 
> 
> -- Forwarded message  --
> Date: Thu, 3 Feb 2011 01:02:16 -0500
> From: Michael G Schwern  via RT 
> To: mar...@cpan.org
> Subject: Re: [rt.cpan.org  #65382]
> 
> https://rt.cpan.org/Ticket/Display.html?id=65382 >
> 
> If that fixes  it then you're likely papering over an error.
> 
> perlrun explains  PERL_DL_NONLAZY and why you'd set it to true for tests.
> 
> PERL_DL_NONLAZY
>  Set to one to have perl  resolve all undefined symbols when
>  it loads a  dynamic library.  The default behaviour is to
>   resolve symbols when they are used.  Setting this  variable
>  is useful during testing of extensions  as it ensures that
>  you get an error on  misspelled function names even if the
>  test suite  doesn't call it.
> 
> So the test is trying to tell you that  modperl_xs_sv2request_rec is not
> defined in your shared library.
> 
> Also,  `prove -I blib` is not correct.  You want `prove -b` which will pull  
in
> blib/lib and blib/arch.
> 
> 
> On 2011.2.3 9:08 AM, Mark Hedges via RT  wrote:
> > It looks like this is the problem, or at least, this fixes it for  me.
> > Why does do_tests() need to explicitly set this?   --m--
> >
> > ---  /usr/lib/perl5/site_perl/5.8.8/Module/Build/Base.pm.orig 2011-02-02
> > 15:04:07.0 -0800
> > +++  /usr/lib/perl5/site_perl/5.8.8/Module/Build/Base.pm 2011-02-02
> > 15:07:21.0 -0800
> > @@ -2667,8 +2667,6  @@
> >
> >my $tests =  $self->find_test_files;
> >
> > -  local $ENV{PERL_DL_NONLAZY} =  1;
> > -
> >if(@$tests) {
> >  my  $args = $self->tap_harness_args;
> >   if($self->use_tap_harness or ($args and %$args)) {
> 
> 
> 
> -- 
> 10.  Not allowed to purchase anyone's soul on government time.
> --  The 213 Things Skippy Is No Longer Allowed To Do In The U.S. Army
>http://skippyslist.com/list/
> 
>