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

Re: Crash of svn during checkout

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2003-06-04 16:23:50 CEST

Patrick Mayweg <mayweg@qint.de> writes:

> Hi Ben,

Hi Patrick, I'm keeping this on the dev list.

> > This part of libsvn_ra_dav is parsing an <update-report> coming from
> > the server, in particular, the <open-directory> tag. The xml "name"
> > attribute is not optional in the report language... so either the
> > report is very messed up, or the server truncated something.
>
> It seems to be optional sometimes. On the top level directory there is no name
> attribute. I this it is checked by
> if (rb->dirs->nelts == 0)
>
> I think there are some </open-directory> or </add-directory> elements missing.
> I get a rb->dirs->nelt of 5.

Ah, right, all update-reports begin with an editor->open_root() call,
and it never has a name. That function call just looks like a single
<open-directory rev="-1"> at the very beginning of every report.

> > What we need from you is:
> >
> > 1. a reproduction recipe, if possible
> >
> > 2. an ethereal trace of the http session, so we can see the xml in
> > the protocol. (Make sure that you set "http-compression" to "no"
> > in your ~/.subversion/servers file before doing the capture.)
>
> It happens all the time, when I checkout our own sources. The ethereal trace
> file is 14MB big. The checkout took almost 1 hour run localy before it
> crashed. Since the software in the repository is not open source, I would like
> to debug it myself.
>
> I just would need some pointers, how to proceed.

Look at the ethereal trace. In particular, look for the first REPORT
request in the dialogue. The response should look something like

<?xml version="1.0" encoding="utf-8"?>
<S:update-report xmlns:S="svn:" xmlns:V="http://subversion.tigris.org/xmlns/dav/" xmlns:D="DAV:">
<S:target-revision rev="6140"/>
<S:open-directory rev="-1">
<D:checked-in><D:href>/repos/svn/!svn/ver/6139/trunk</D:href></D:checked-in>
<S:add-file name="PORTING">
<D:checked-in><D:href>/repos/svn/!svn/ver/4371/trunk/PORTING</D:href></D:checked-in>
<S:prop><D:version-name>4371</D:version-name><D:creationdate>2003-01-13T22:43:13.497183Z</D:creationdate><D:creator-displayname>rassilon</D:creator-displayname><V:md5-checksum>29328d669a77512152bd9deb6ae42ffe</V:md5-checksum></S:prop>
</S:add-file>
<S:add-file name="Makefile.in">
<D:checked-in><D:href>/repos/svn/!svn/ver/6103/trunk/Makefile.in</D:href></D:checked-in>
<S:prop><D:version-name>6103</D:version-name><D:creationdate>2003-05-31T07:09:55.218056Z</D:creationdate><D:creator-displayname>jerenkrantz</D:creator-displayname><V:md5-checksum>881edf8cf9805495d703eaa91914e7f6</V:md5-checksum></S:prop>
</S:add-file>
<S:add-directory name="ac-helpers">
<D:checked-in><D:href>/repos/svn/!svn/ver/5158/trunk/ac-helpers</D:href></D:checked-in>
<S:add-file name="install.sh">
<D:checked-in><D:href>/repos/svn/!svn/ver/4371/trunk/ac-helpers/install.sh</D:href></D:checked-in>
<S:prop><D:version-name>4371</D:version-name><D:creationdate>2003-01-13T22:43:13.497183Z</D:creationdate><D:creator-displayname>rassilon</D:creator-displayname><V:md5-checksum>0f9b86b887b3e2c7676524bbe7a68bbf</V:md5-checksum></S:prop>
</S:add-file>

... and so on. Assuming that you're using svn 0.23 or later on both
client and server, then you should never see any <open-directory> tags
at all, other than the very first one. The report should only contain
<add-director> or <add-file> commands.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Jun 4 16:25:37 2003

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.