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

Re: Seeking help for "E000054: Error retrieving REPORT: Connection reset by peer"

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Fri, 10 Jan 2014 01:22:34 +0000

Ben Reser <ben_at_reser.org> writes:

> Actually we know we haven't covered all possibilities. Had someone a while
> back that had mod_security setup in such a way that it was rejecting some
> request methods (think it was POST) without Content-Length (thus breaking
> chunked requests). The behavior didn't fail for the OPTION requests so our
> probe to try and work around transparent proxies failed.
>
> But I'm not sure what this thread would really have to do with chunked
> requests, since the problem seems to be pipelining which as far as I know we
> don't have any workarounds for.
>
> We can rule out the chunked requests by disabling it by adding this to the
> command line --config-option servers:global:http-chunked-requests=no and seeing
> if it changes anything. But I really doubt it based on what I've seen on this
> thread.

Disabling chunked requests makes no difference. I see a trunk client
failing most of the time, but occasionally it succeeds. When it fails
it ususally hangs and eventually times-out, but occasionally it fails
with "Connection reset by peer". 1.8 fails like trunk, but 1.7/serf
works.

If we believe Wireshark then the server is sending an RST part way
through the response to the first of 13 pipelined GETs. The response
reponse is not chunked, it has Content-Length:8407648, but the client
only receives 14480 bytes (I think that includes the headers).

1.7/serf, which works, pipelines 13 PROPFINDs as well as 13 GETs. If I
force trunk to pipeline the PROPFINDs using:

Index: ../src/subversion/libsvn_ra_serf/update.c
===================================================================
--- ../src/subversion/libsvn_ra_serf/update.c (revision 1557003)
+++ ../src/subversion/libsvn_ra_serf/update.c (working copy)
@@ -1630,7 +1630,7 @@
 
       val = svn_xml_get_attr_value("inline-props", attrs);
       if (val && (strcmp(val, "true") == 0))
- ctx->add_props_included = TRUE;
+ ctx->add_props_included = FALSE;
 
       val = svn_xml_get_attr_value("send-all", attrs);
       if (val && (strcmp(val, "true") == 0))
@@ -1638,7 +1638,7 @@
           ctx->send_all_mode = TRUE;
 
           /* All properties are included in send-all mode. */
- ctx->add_props_included = TRUE;
+ ctx->add_props_included = FALSE;
         }
     }
   else if (state == NONE && strcmp(name.name, "target-revision") == 0)

then the checkout with trunk starts working reliably. Wireshark no
longer shows an RST from the server, it does however show some packets
marked "TCP Previous segment not captured" and some marked "TCP Dup
ACK".

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Received on 2014-01-10 02:29:49 CET

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