[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: SEGFAULT committing against tigris.org with HEAD client code.

From: Greg Stein <gstein_at_gmail.com>
Date: Fri, 15 Jun 2012 04:56:46 -0400

On Thu, Jun 14, 2012 at 10:17 PM, C. Michael Pilato <cmpilato_at_collab.net> wrote:
> On 06/15/2012 03:40 AM, C. Michael Pilato wrote:
>> I noticed tonight that my attempts to commit to the ViewVC repository on
>> Tigris.org are now failing due to a client-side SEGFAULT.  So far, all I
>> know is that the failure is due to a call to svn_ra_serf__set_prop() (at
>> subversion/libsvn_ra_serf/commit.c:1470) with a NULL path.  Because
>> Tigris.org is running 1.6.x code, this path comes via the !HTTPv2 branch of
>> the preceding logic, which deals with CHECKOUT requests and such.
>> Ultimately, it's a NULL baseline URL that's passed to the __set_prop()
>> function, eventually leading to the SEGFAULT in APR's hash code (NULL hash
>> keys aren't allowed).
>>
>> This code has worked as recently as yesterday, as I was committing
>> successfully to ViewVC at that time.
>
> More on this:
>
> There is a NULL baseline URL because in handle_checkout(), this check:
>
>  if (handler->done && handler->sline.code == 201)
>
> fails due to handler->done having a value of 0.  This prevent the code from
> harvesting the Location: header value, in which is stored the very baseline
> URL we need.
>
> The attached patch allowed me to get back to committing again.  It removes a
> bunch of code that appears to be already encapsulated elsewhere (which is a
> good thing!), but it also completely disregards the handler->done check.  I
> suspect that this latter change is wrong, and that the bug simply reveals
> some other ra_serf state management problem.

Thanks for finding this, and providing the patch. However... that led
to a much larger simplification. See r1350541 for an explanation.

Essentially, the function you patched isn't even needed. I completely
tossed it :-)

Cheers,
-g
Received on 2012-06-15 10:57:23 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.