You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Ben Collins-Sussman <su...@red-bean.com> on 2009/03/31 12:28:05 UTC

serf failure

Over the last couple of weeks using trunk + serf, I occasionally get
update failures, and I don't know why.  Sometimes they go away,
sometimes not.  Today I tried to update a working copy from a 1.5
server on red-bean, and I get this perfectly reproducible error:

$ svn up
subversion/libsvn_ra_serf/update.c:819: (apr_err=175002)
svn: GET request failed: 400 Bad Request


I did a network trace, and while the REPORT request & response seem
fine, one of the four the subsequent parallelized GET requests is
making the server throw 400.  I can't see why.  Can someone take a
look?  I've attached the REPORT response below, followed by the 4 GET
requests, and then the 400 response.

For some reason, my working copy is of
http://svn.red-bean.com/repos/sussman/scores/winesburg/kc-score, and
is now showing up as 'incomplete':

$ svn st
!       .
!       vocalscore
?       vocalscore/15 Elizabeth's Death copy.mus

... presumably incomplete because every 'svn up' attempt leaves an
'incomplete' marker in the entries file.  That explains why the REPORT
request is in cvs-style 'low confidence' mode, where the entire
entries file is being described.

-------------------------------------------------------------

HTTP/1.1 200 OK
Date: Tue, 31 Mar 2009 12:17:56 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8g DAV/2
SVN/1.5.6 PHP/5.2.9 mod_python/3.3.1 Python/2.5.4
Transfer-Encoding: chunked
Content-Type: text/xml; charset="utf-8"

10be
<?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="698"/>
<S:open-directory rev="698">
<D:checked-in><D:href>/repos/sussman/!svn/ver/698/scores/winesburg/kc-score</D:href></D:checked-in>
<S:open-directory name="vocalscore" rev="698">
<D:checked-in><D:href>/repos/sussman/!svn/ver/697/scores/winesburg/kc-score/vocalscore</D:href></D:checked-in>
<S:open-file name="15 Elizabeth's Death.mus" rev="696">
<D:checked-in><D:href>/repos/sussman/!svn/ver/697/scores/winesburg/kc-score/vocalscore/15%20Elizabeth's%20Death.mus</D:href></D:checked-in>
<S:fetch-file base-checksum="faa911e86ab5222eaac4596c696f3986"/>
<S:prop><V:md5-checksum>cec4ee41fbdae8ffc432c2befcbc1b90</V:md5-checksum><D:version-name>697</D:version-name><D:creationdate>2009-03-05T22:58:03.989583Z</D:creationdate><D:creator-displayname>sussman</D:creator-displayname></S:prop>
</S:open-file>
<S:prop><D:version-name>697</D:version-name><D:creationdate>2009-03-05T22:58:03.989583Z</D:creationdate><D:creator-displayname>sussman</D:creator-displayname></S:prop>
</S:open-directory>
<S:open-directory name="parts" rev="696">
<D:checked-in><D:href>/repos/sussman/!svn/ver/698/scores/winesburg/kc-score/parts</D:href></D:checked-in>
<S:open-directory name="violin" rev="696">
<D:checked-in><D:href>/repos/sussman/!svn/ver/698/scores/winesburg/kc-score/parts/violin</D:href></D:checked-in>
<S:open-file name="15 Elizabeth's Death-vln.mus" rev="696">
<D:checked-in><D:href>/repos/sussman/!svn/ver/698/scores/winesburg/kc-score/parts/violin/15%20Elizabeth's%20Death-vln.mus</D:href></D:checked-in>
<S:fetch-file base-checksum="f3c93c3498cfbee732177919858cb32d"/>
<S:prop><V:md5-checksum>281bf0dd11cb6371ae3a2abe6f086302</V:md5-checksum><D:version-name>698</D:version-name><D:creationdate>2009-03-07T03:50:25.075656Z</D:creationdate><D:creator-displayname>sussman</D:creator-displayname></S:prop>
</S:open-file>
<S:prop><D:version-name>698</D:version-name><D:creationdate>2009-03-07T03:50:25.075656Z</D:creationdate><D:creator-displayname>sussman</D:creator-displayname></S:prop>
</S:open-directory>
<S:open-directory name="bass" rev="696">
<D:checked-in><D:href>/repos/sussman/!svn/ver/698/scores/winesburg/kc-score/parts/bass</D:href></D:checked-in>
<S:open-file name="15 Elizabeth's Death-bass.mus" rev="696">
<D:checked-in><D:href>/repos/sussman/!svn/ver/698/scores/winesburg/kc-score/parts/bass/15%20Elizabeth's%20Death-bass.mus</D:href></D:checked-in>
<S:fetch-file base-checksum="935044e4fee19a2463274fb57d9c31cd"/>
<S:prop><V:md5-checksum>e2a3d09878f1b2b306a9632d551d671a</V:md5-checksum><D:version-name>698</D:version-name><D:creationdate>2009-03-07T03:50:25.075656Z</D:creationdate><D:creator-displayname>sussman</D:creator-displayname></S:prop>
</S:open-file>
<S:prop><D:version-name>698</D:version-name><D:creationdate>2009-03-07T03:50:25.075656Z</D:creationdate><D:creator-displayname>sussman</D:creator-displayname></S:prop>
</S:open-directory>
<S:open-directory name="guitar2" rev="696">
<D:checked-in><D:href>/repos/sussman/!svn/ver/698/scores/winesburg/kc-score/parts/guitar2</D:href></D:checked-in>
<S:open-file name="15 Elizabeth's Death-gtr2.mus" rev="696">
<D:checked-in><D:href>/repos/sussman/!svn/ver/698/scores/winesburg/kc-score/parts/guitar2/15%20Elizabeth's%20Death-gtr2.mus</D:href></D:checked-in>
<S:fetch-file base-checksum="f386b9280c042c3469795899a3c8b27c"/>
<S:prop><V:md5-checksum>42bf380c6aa55d12cc3674b9a61b3ab3</V:md5-checksum><D:version-name>698</D:version-name><D:creationdate>2009-03-07T03:50:25.075656Z</D:creationdate><D:creator-displayname>sussman</D:creator-displayname></S:prop>
</S:open-file>
<S:prop><D:version-name>698</D:version-name><D:creationdate>2009-03-07T03:50:25.075656Z</D:creationdate><D:creator-displayname>sussman</D:creator-displayname></S:prop>
</S:open-directory>
<S:prop><D:version-name>698</D:version-name><D:creationdate>2009-03-07T03:50:25.075656Z</D:creationdate><D:creator-displayname>sussman</D:creator-displayname></S:prop>
</S:open-directory>
<S:prop><D:version-name>698</D:version-name><D:creationdate>2009-03-07T03:50:25.075656Z</D:creationdate><D:creator-displayname>sussman</D:creator-displayname></S:prop>
</S:open-directory>
</S:update-report>

0


GET /repos/sussman/!svn/ver/697/scores/winesburg/kc-score/vocalscore/15%20Elizabeth's%20Death.mus
HTTP/1.1
Accept-Encoding: svndiff1;q=0.9,svndiff;q=0.8
X-SVN-VR-Base: /repos/sussman/!svn/ver/697/scores/winesburg/696/scores/winesburg/kc-score/vocalscore/15
Elizabeth's Death.mus
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth,http://subversion.tigris.org/xmlns/dav/svn/mergeinfo,http://subversion.tigris.org/xmlns/dav/svn/log-revprops
User-Agent: SVN/1.7.0 (dev build) serf/0.3.0
Host: svn.red-bean.com

GET /repos/sussman/!svn/ver/698/scores/winesburg/kc-score/parts/violin/15%20Elizabeth's%20Death-vln.mus
HTTP/1.1
Accept-Encoding: svndiff1;q=0.9,svndiff;q=0.8
X-SVN-VR-Base: /repos/sussman/!svn/ver/698/scores/winesburg/696/scores/winesburg/kc-score/parts/violin/15
Elizabeth's Death-vln.mus
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth,http://subversion.tigris.org/xmlns/dav/svn/mergeinfo,http://subversion.tigris.org/xmlns/dav/svn/log-revprops
User-Agent: SVN/1.7.0 (dev build) serf/0.3.0
Host: svn.red-bean.com

GET /repos/sussman/!svn/ver/698/scores/winesburg/kc-score/parts/bass/15%20Elizabeth's%20Death-bass.mus
HTTP/1.1
Accept-Encoding: svndiff1;q=0.9,svndiff;q=0.8
X-SVN-VR-Base: /repos/sussman/!svn/ver/698/scores/winesburg/696/scores/winesburg/kc-score/parts/bass/15
Elizabeth's Death-bass.mus
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth,http://subversion.tigris.org/xmlns/dav/svn/mergeinfo,http://subversion.tigris.org/xmlns/dav/svn/log-revprops
User-Agent: SVN/1.7.0 (dev build) serf/0.3.0
Host: svn.red-bean.com

GET /repos/sussman/!svn/ver/698/scores/winesburg/kc-score/parts/guitar2/15%20Elizabeth's%20Death-gtr2.mus
HTTP/1.1
Accept-Encoding: svndiff1;q=0.9,svndiff;q=0.8
X-SVN-VR-Base: /repos/sussman/!svn/ver/698/scores/winesburg/696/scores/winesburg/kc-score/parts/guitar2/15
Elizabeth's Death-gtr2.mus
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth,http://subversion.tigris.org/xmlns/dav/svn/mergeinfo,http://subversion.tigris.org/xmlns/dav/svn/log-revprops
User-Agent: SVN/1.7.0 (dev build) serf/0.3.0
Host: svn.red-bean.com

HTTP/1.1 400 Bad Request
Date: Tue, 31 Mar 2009 12:17:57 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8g DAV/2
SVN/1.5.6 PHP/5.2.9 mod_python/3.3.1 Python/2.5.4
Content-Length: 226
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1495425

Re: serf failure

Posted by km...@rockwellcollins.com.
"C. Michael Pilato" <cm...@collab.net> wrote on 03/31/2009 11:47:32 AM:

> Ben Collins-Sussman wrote:
> > Looking at the traffic in my first email answers both questions.  :-)
> > 
> > On Tue, Mar 31, 2009 at 10:05 AM, Ivan Zhakov <iv...@visualsvn.com> 
wrote:
> > 
> >> I didn't find root of the problem, but removing '!' character from
> >> X-SVN-VR-Base header value solves the problem. Btw what is Apache
> >> version on red-bean?
> > 
> > Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8g DAV/2
> > SVN/1.5.6 PHP/5.2.9 mod_python/3.3.1 Python/2.5.4
> > 
> > 
> > On Tue, Mar 31, 2009 at 10:10 AM, C. Michael Pilato 
<cm...@collab.net> wrote:
> > 
> >> Seriously, though.  I can checkout your kc-score location and update 
back
> >> and forth between r676 and HEAD without problem using serf.  What 
version of
> >> libserf are you running?
> > 
> > User-Agent: SVN/1.7.0 (dev build) serf/0.3.0
> 
> Doh!
> 
> I just ran into a completely reproducible and similarly looking problem
> trying to update my svnbook working copy from Google Code. 
Unfortunately,
> that's an SSL connection and no so trivially trace-able.  (Still, 
couldn't
> make the problem occur against your Winesburg repository tree.)

If you are on Windows, you can use the fiddler2 web debug proxy to trace
(and decode the SSL) traffic after setting up it's port to be your 
subversion
proxy host.  It is really nice because it parses out the header 
information
and shows timing and return code information.

http://www.fiddler2.com/fiddler2/

Kevin R.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1498125

Re: serf failure

Posted by "C. Michael Pilato" <cm...@collab.net>.
Ben Collins-Sussman wrote:
> Looking at the traffic in my first email answers both questions.  :-)
> 
> On Tue, Mar 31, 2009 at 10:05 AM, Ivan Zhakov <iv...@visualsvn.com> wrote:
> 
>> I didn't find root of the problem, but removing '!' character from
>> X-SVN-VR-Base header value solves the problem. Btw what is Apache
>> version on red-bean?
> 
> Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8g DAV/2
> SVN/1.5.6 PHP/5.2.9 mod_python/3.3.1 Python/2.5.4
> 
> 
> On Tue, Mar 31, 2009 at 10:10 AM, C. Michael Pilato <cm...@collab.net> wrote:
> 
>> Seriously, though.  I can checkout your kc-score location and update back
>> and forth between r676 and HEAD without problem using serf.  What version of
>> libserf are you running?
> 
> User-Agent: SVN/1.7.0 (dev build) serf/0.3.0

Doh!

I just ran into a completely reproducible and similarly looking problem
trying to update my svnbook working copy from Google Code.  Unfortunately,
that's an SSL connection and no so trivially trace-able.  (Still, couldn't
make the problem occur against your Winesburg repository tree.)

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1497599

Re: serf failure

Posted by Ben Collins-Sussman <su...@red-bean.com>.
Looking at the traffic in my first email answers both questions.  :-)

On Tue, Mar 31, 2009 at 10:05 AM, Ivan Zhakov <iv...@visualsvn.com> wrote:

> I didn't find root of the problem, but removing '!' character from
> X-SVN-VR-Base header value solves the problem. Btw what is Apache
> version on red-bean?

Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8g DAV/2
SVN/1.5.6 PHP/5.2.9 mod_python/3.3.1 Python/2.5.4


On Tue, Mar 31, 2009 at 10:10 AM, C. Michael Pilato <cm...@collab.net> wrote:

> Seriously, though.  I can checkout your kc-score location and update back
> and forth between r676 and HEAD without problem using serf.  What version of
> libserf are you running?

User-Agent: SVN/1.7.0 (dev build) serf/0.3.0

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1497426

Re: serf failure

Posted by Ivan Zhakov <iv...@visualsvn.com>.
On Tue, Mar 31, 2009 at 4:28 PM, Ben Collins-Sussman
<su...@red-bean.com> wrote:
> Over the last couple of weeks using trunk + serf, I occasionally get
> update failures, and I don't know why.  Sometimes they go away,
> sometimes not.  Today I tried to update a working copy from a 1.5
> server on red-bean, and I get this perfectly reproducible error:
>
> $ svn up
> subversion/libsvn_ra_serf/update.c:819: (apr_err=175002)
> svn: GET request failed: 400 Bad Request
>
>
> I did a network trace, and while the REPORT request & response seem
> fine, one of the four the subsequent parallelized GET requests is
> making the server throw 400.  I can't see why.  Can someone take a
> look?  I've attached the REPORT response below, followed by the 4 GET
> requests, and then the 400 response.
>
> For some reason, my working copy is of
> http://svn.red-bean.com/repos/sussman/scores/winesburg/kc-score, and
> is now showing up as 'incomplete':
>
> $ svn st
> !       .
> !       vocalscore
> ?       vocalscore/15 Elizabeth's Death copy.mus
>
> ... presumably incomplete because every 'svn up' attempt leaves an
> 'incomplete' marker in the entries file.  That explains why the REPORT
> request is in cvs-style 'low confidence' mode, where the entire
> entries file is being described.
>
I didn't find root of the problem, but removing '!' character from
X-SVN-VR-Base header value solves the problem. Btw what is Apache
version on red-bean?


-- 
Ivan Zhakov
VisualSVN Team

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1496585


Re: serf failure

Posted by "C. Michael Pilato" <cm...@collab.net>.
Ben Collins-Sussman wrote:
> Over the last couple of weeks using trunk + serf, I occasionally get
> update failures, and I don't know why.  Sometimes they go away,
> sometimes not.  Today I tried to update a working copy from a 1.5
> server on red-bean, and I get this perfectly reproducible error:
> 
> $ svn up
> subversion/libsvn_ra_serf/update.c:819: (apr_err=175002)
> svn: GET request failed: 400 Bad Request

Oh my gosh!  They killed Elizabeth!

Seriously, though.  I can checkout your kc-score location and update back
and forth between r676 and HEAD without problem using serf.  What version of
libserf are you running?

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1496622

Re: serf failure

Posted by "C. Michael Pilato" <cm...@collab.net>.
Ben Collins-Sussman wrote:
> GET /repos/sussman/!svn/ver/697/scores/winesburg/kc-score/vocalscore/15%20Elizabeth's%20Death.mus
> HTTP/1.1
> Accept-Encoding: svndiff1;q=0.9,svndiff;q=0.8
> X-SVN-VR-Base: /repos/sussman/!svn/ver/697/scores/winesburg/696/scores/winesburg/kc-score/vocalscore/15

Um... this URL looks bogus.  We've got the "BASEREV/scores/winesburg/" bit
appearing twice here (and with two different BASEREVs, even).  That's not
right.  I'll take a look-see.  Probably something I broke with the HTTP v2 work.

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1497627