You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Doug Hunley <do...@gmail.com> on 2012/06/18 16:55:02 UTC

perl auth fails after upgrade to svn 1.7.5

Hey everyone,
We're currently running Apache 2.2.x on an OS X server with SVN 1.6.x
and have a mod_perl based authentication handler for SVN repo access.
It works fine and has for many months. When we upgrade to 1.7.x, our
commits fail with an Apache 500 error, and the logs show:
[Wed May 16 22:38:58 2012] [error] Subroutine fatal redefined at
/Library/Apache/HTTPD/2.2.11-flock/Perl/lib/perl5/site_perl/5.8.9/darwin-thread-multi-2level/APR/Error.pm
line 41.\nCompilation failed in require at (eval 22) line 1.\n

If we disable the new httpv2 that comes with 1.7.x all this goes away
and everything works exactly as it did under 1.6.x. We are not nesting
<Location> directives, and that's the only real issue I've found so
far that is similar to ours in the mailing list archive.

Where do I begin troubleshooting this?

-- 
Douglas J Hunley (doug.hunley@gmail.com)
Twitter: @hunleyd                                               Web:
douglasjhunley.com
G+: http://goo.gl/sajR3

Re: perl auth fails after upgrade to svn 1.7.5

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Doug Hunley wrote on Wed, Jun 20, 2012 at 13:03:32 -0400:
> On Mon, Jun 18, 2012 at 4:48 PM, Daniel Shahaf <d....@daniel.shahaf.name> wrote:
> > Doug Hunley wrote on Mon, Jun 18, 2012 at 10:55:02 -0400:
> >> Hey everyone,
> >> We're currently running Apache 2.2.x on an OS X server with SVN 1.6.x
> >> and have a mod_perl based authentication handler for SVN repo access.
> >> It works fine and has for many months. When we upgrade to 1.7.x, our
> >> commits fail with an Apache 500 error, and the logs show:
> >> [Wed May 16 22:38:58 2012] [error] Subroutine fatal redefined at
> >> /Library/Apache/HTTPD/2.2.11-flock/Perl/lib/perl5/site_perl/5.8.9/darwin-thread-multi-2level/APR/Error.pm
> >> line 41.\nCompilation failed in require at (eval 22) line 1.\n
> >>
> >> If we disable the new httpv2 that comes with 1.7.x all this goes away
> >> and everything works exactly as it did under 1.6.x. We are not nesting
> >> <Location> directives, and that's the only real issue I've found so
> >> far that is similar to ours in the mailing list archive.
> >>
> >> Where do I begin troubleshooting this?
> >>
> >
> > Check where the 'other' definition of the subroutine 'fatal' is, and why
> > the two definitions conflict.
> 
> The only definitions of fatal are:
> qa2:Perl root# grep -rn 'sub fatal ' *
> lib/perl5/5.8.9/Error.pm:41:sub fatal {  die __PACKAGE__ . ": Can't
> handle '$_[3]'" }
> lib/perl5/site_perl/5.8.9/darwin-2level/APR/Error.pm:41:sub fatal {
> die __PACKAGE__ . ": Can't handle '$_[3]'" }
> lib/perl5/site_perl/5.8.9/darwin-thread-multi-2level/APR/Error.pm:41:sub
> fatal {  die __PACKAGE__ . ": Can't handle '$_[3]'" }
> qa2:Perl root#
> 
> which are all part of Perl or Apache itself, so this isn't too
> helpful. It also doesn't explain why making no code changes at all yet

The first match appears to be in Perl's own "Error" module, not in
Apache.

I'm not sure which two definitions conflict --- the system and APR one,
or the APR one with itself somehow.

> disabling httpv2 in subversion makes the error go away. Perhaps I'm
> still not understanding what I should be looking for. Can you
> elaborate based on the above? Thanks.
> 
> -- 
> Douglas J Hunley (doug.hunley@gmail.com)
> Twitter: @hunleyd                                               Web:
> douglasjhunley.com
> G+: http://goo.gl/sajR3

Re: perl auth fails after upgrade to svn 1.7.5

Posted by Doug Hunley <do...@gmail.com>.
On Wed, Jun 20, 2012 at 1:39 PM, Philip Martin
<ph...@wandisco.com> wrote:
> When you disabled v2 you probably restarted apache.  Perhaps the
> original error was caused by mod_perl reloading the Perl and then
> getting redefinitions of the symbols present from the previous load.
> Restarting apache would make this go away, so it may be the restart
> rather than any v2 change that solved the problem

Yes, we did. And then we bounced it to re-enable it and the issue
persisted. I wish it was that simple.

-- 
Douglas J Hunley (doug.hunley@gmail.com)
Twitter: @hunleyd                                               Web:
douglasjhunley.com
G+: http://goo.gl/sajR3

Re: perl auth fails after upgrade to svn 1.7.5

Posted by Philip Martin <ph...@wandisco.com>.
Doug Hunley <do...@gmail.com> writes:

> On Mon, Jun 18, 2012 at 4:48 PM, Daniel Shahaf <d....@daniel.shahaf.name> wrote:
>> Doug Hunley wrote on Mon, Jun 18, 2012 at 10:55:02 -0400:
>>> Hey everyone,
>>> We're currently running Apache 2.2.x on an OS X server with SVN 1.6.x
>>> and have a mod_perl based authentication handler for SVN repo access.
>>> It works fine and has for many months. When we upgrade to 1.7.x, our
>>> commits fail with an Apache 500 error, and the logs show:
>>> [Wed May 16 22:38:58 2012] [error] Subroutine fatal redefined at
>>> /Library/Apache/HTTPD/2.2.11-flock/Perl/lib/perl5/site_perl/5.8.9/darwin-thread-multi-2level/APR/Error.pm
>>> line 41.\nCompilation failed in require at (eval 22) line 1.\n
>>>
>>> If we disable the new httpv2 that comes with 1.7.x all this goes away
>>> and everything works exactly as it did under 1.6.x. We are not nesting
>>> <Location> directives, and that's the only real issue I've found so
>>> far that is similar to ours in the mailing list archive.
>>>
>>> Where do I begin troubleshooting this?
>>>
>>
>> Check where the 'other' definition of the subroutine 'fatal' is, and why
>> the two definitions conflict.
>
> The only definitions of fatal are:
> qa2:Perl root# grep -rn 'sub fatal ' *
> lib/perl5/5.8.9/Error.pm:41:sub fatal {  die __PACKAGE__ . ": Can't
> handle '$_[3]'" }
> lib/perl5/site_perl/5.8.9/darwin-2level/APR/Error.pm:41:sub fatal {
> die __PACKAGE__ . ": Can't handle '$_[3]'" }
> lib/perl5/site_perl/5.8.9/darwin-thread-multi-2level/APR/Error.pm:41:sub
> fatal {  die __PACKAGE__ . ": Can't handle '$_[3]'" }
> qa2:Perl root#
>
> which are all part of Perl or Apache itself, so this isn't too
> helpful. It also doesn't explain why making no code changes at all yet
> disabling httpv2 in subversion makes the error go away. Perhaps I'm
> still not understanding what I should be looking for. Can you
> elaborate based on the above? Thanks.

When you disabled v2 you probably restarted apache.  Perhaps the
original error was caused by mod_perl reloading the Perl and then
getting redefinitions of the symbols present from the previous load.
Restarting apache would make this go away, so it may be the restart
rather than any v2 change that solved the problem.

-- 
Philip

Re: perl auth fails after upgrade to svn 1.7.5

Posted by Doug Hunley <do...@gmail.com>.
On Mon, Jun 18, 2012 at 4:48 PM, Daniel Shahaf <d....@daniel.shahaf.name> wrote:
> Doug Hunley wrote on Mon, Jun 18, 2012 at 10:55:02 -0400:
>> Hey everyone,
>> We're currently running Apache 2.2.x on an OS X server with SVN 1.6.x
>> and have a mod_perl based authentication handler for SVN repo access.
>> It works fine and has for many months. When we upgrade to 1.7.x, our
>> commits fail with an Apache 500 error, and the logs show:
>> [Wed May 16 22:38:58 2012] [error] Subroutine fatal redefined at
>> /Library/Apache/HTTPD/2.2.11-flock/Perl/lib/perl5/site_perl/5.8.9/darwin-thread-multi-2level/APR/Error.pm
>> line 41.\nCompilation failed in require at (eval 22) line 1.\n
>>
>> If we disable the new httpv2 that comes with 1.7.x all this goes away
>> and everything works exactly as it did under 1.6.x. We are not nesting
>> <Location> directives, and that's the only real issue I've found so
>> far that is similar to ours in the mailing list archive.
>>
>> Where do I begin troubleshooting this?
>>
>
> Check where the 'other' definition of the subroutine 'fatal' is, and why
> the two definitions conflict.

The only definitions of fatal are:
qa2:Perl root# grep -rn 'sub fatal ' *
lib/perl5/5.8.9/Error.pm:41:sub fatal {  die __PACKAGE__ . ": Can't
handle '$_[3]'" }
lib/perl5/site_perl/5.8.9/darwin-2level/APR/Error.pm:41:sub fatal {
die __PACKAGE__ . ": Can't handle '$_[3]'" }
lib/perl5/site_perl/5.8.9/darwin-thread-multi-2level/APR/Error.pm:41:sub
fatal {  die __PACKAGE__ . ": Can't handle '$_[3]'" }
qa2:Perl root#

which are all part of Perl or Apache itself, so this isn't too
helpful. It also doesn't explain why making no code changes at all yet
disabling httpv2 in subversion makes the error go away. Perhaps I'm
still not understanding what I should be looking for. Can you
elaborate based on the above? Thanks.

-- 
Douglas J Hunley (doug.hunley@gmail.com)
Twitter: @hunleyd                                               Web:
douglasjhunley.com
G+: http://goo.gl/sajR3

Re: perl auth fails after upgrade to svn 1.7.5

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Doug Hunley wrote on Mon, Jun 18, 2012 at 10:55:02 -0400:
> Hey everyone,
> We're currently running Apache 2.2.x on an OS X server with SVN 1.6.x
> and have a mod_perl based authentication handler for SVN repo access.
> It works fine and has for many months. When we upgrade to 1.7.x, our
> commits fail with an Apache 500 error, and the logs show:
> [Wed May 16 22:38:58 2012] [error] Subroutine fatal redefined at
> /Library/Apache/HTTPD/2.2.11-flock/Perl/lib/perl5/site_perl/5.8.9/darwin-thread-multi-2level/APR/Error.pm
> line 41.\nCompilation failed in require at (eval 22) line 1.\n
> 
> If we disable the new httpv2 that comes with 1.7.x all this goes away
> and everything works exactly as it did under 1.6.x. We are not nesting
> <Location> directives, and that's the only real issue I've found so
> far that is similar to ours in the mailing list archive.
> 
> Where do I begin troubleshooting this?
> 

Check where the 'other' definition of the subroutine 'fatal' is, and why
the two definitions conflict.

> -- 
> Douglas J Hunley (doug.hunley@gmail.com)
> Twitter: @hunleyd                                               Web:
> douglasjhunley.com
> G+: http://goo.gl/sajR3