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

Re: Error While Checking out Git Repository

From: Greg Stein <gstein_at_gmail.com>
Date: Thu, 9 Feb 2012 21:53:40 -0500

Hey Nick!

Thanks for looking into this.

On Thu, Feb 9, 2012 at 20:29, Nick Hengeveld <nickh_at_github.com> wrote:
> On Wed, Feb 8, 2012 at 12:59 PM, Greg Stein <gstein_at_gmail.com> wrote:
>
>> So... this isn't really so much about "svn must allow for HTTP/1.0"
>> (yes, we'll work on it), but that github could also provide better
>> service overall by updating its proxy.
>
>
> I've been looking into what it would take to update our proxy.  I have an
> nginx
> configuration in my dev environment that handles requests with chunked
> transfer-encoding and we could feasibly deploy something like this to
> production.

Awesome!

>  However, I'm now getting a different error on the client:
>
> svn: E235000: In file 'subversion/libsvn_ra_serf/update.c' line
> 1769: internal malfunction
> Aborted
>
> From what I can see at
> https://github.com/apache/subversion/blob/trunk/subversion/libsvn_ra_serf/update.c#L1698-1771
> it looks like the client is trying to process an add/open file.  The
> checkout
> I'm testing is small and contains only one file, and this is what the server
> is returning for that file:
>
> <S:add-file name="README.txt" >
> <D:checked-in><D:href>/github/sample/!svn/ver/3/trunk/README.txt</D:href></D:checked-in>
> <S:set-prop name="svn:entry:committed-rev">3</S:set-prop>
> <S:set-prop
> name="svn:entry:uuid">faa06a63-5b49-ecd5-b7fc-ce57b7db7bff</S:set-prop>
> <S:set-prop
> name="svn:entry:committed-date">2012-02-09T22:12:11.000000Z</S:set-prop>
> <S:set-prop name="svn:entry:last-author">subversion.user</S:set-prop>
> <S:txdelta>
> U1ZO
> AQAAMQs4AnicazAEAAEzALIxeJwLycgsVgCixDyFotTElNxUHYXSgpTEktQUhbLMRIVEBUM9c4XknMzUvBI9rsh8PS4AnrgP
> sw==
> </S:txdelta>
> <S:prop><V:md5-checksum>5fa5200f0f095d120c13870e107dfb7a</V:md5-checksum></S:prop>
> </S:add-file>

The S:txdelta element was not requested by the client, so it freaks
out when it sees the unknown element.

Control over whether the txdelta should be sent/not is within the
update-report that the client sends to the server. Take a look at the
"send-all" attribute on the S:update-report in the request. The
txdelta element should only be delivered to the client when
send-all=true.

ra_neon wants the embedded txdelta within one giant response. ra_serf
only wants a barebones "what changed", and then it will issue multiple
GET calls to fetch the deltas individually. serf will pipeline these
GET requests over several connections.

>...

Cheers,
-g
Received on 2012-02-10 03:54:15 CET

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