Hi Willy,

Thanks for getting back to me.

I have not tried this with many versions. I initially observed this in 1.5.9, and then upgraded to 1.5.12. So far I have only observed this in my production setup and have not had an opportunity to reproduce it in a lab environment.

This seems to happen consistently when checking out an SVN repository with a large number of files using pipelining in SVN 1.8. It fails 100% of the time during a long series of pipelined GETs (often 100+ files), though it never fails at the same point in the process. The moment point at which it fails appears to be quite random. The result is always like one of the following- a (seemingly random) corrupt file:

svn: E200014: Checksum mismatch for '/home/charlie/rails-svn.svn/actionmailer/test/old_base/mail_service_test.rb':
   expected:  ef16134eb2d867c65dafa9f94e7f07eb
     actual:  da03c0ff58ac496806b7c93a5c5ee955

svn: E200014: Checksum mismatch for '/home/charlie/rails-svn.svn/activerecord/CHANGELOG':
   expected:  91d0738b8584c589d369894538e4980e
     actual:  c768c783c9839160603fde6de858d47f

svn: E200014: Checksum mismatch for '/home/charlie/rails-svn.svn/activerecord/test/schema/postgresql_specific_schema.rb':
   expected:  53513d25e0a17f3b2e59f8059c0314f2
     actual:  8eedde06deb4476edceab1495e5e19da

I have tried fetching a single file repeatedly using keepalive and jmeter (no pipelining) and was not able to reproduce the problem in that manner.

Charlie


On 30/06/15 09:59, Willy Tarreau wrote:
Hi Charlie,

On Mon, Jun 29, 2015 at 05:03:00PM +0100, Charlie Smurthwaite wrote:
Hi,

I am using haproxy to proxy SVN connections. The process works as follows:

* The SVN client opens a TCP connection and sends multiple pipelined GET
requests
* HAProxy opens a connection to a backend for each request
* The backends respond with chunked data
* Haproxy sends each reply back to the client in the appropriate order

Unfortunately, in this scenario, I believe I'm running into a bug
whereby the chunked content is being corrupted. To me, it appears that
parts of the content being repeated and overrunning the end of the chunk.
Hmmm that's not a good news at all.

I'm attaching 2 pcap files, one containing a corrupt stream of requests
and responses, and the other containing the clean request and response
for one of the corrupt files. Both captures were taken simultaneously on
the host running HAProxy. Also attached is my full config.
That will be quite helpful, I'm studying that now. Are you aware of any
version which doesn't exhibit this behaviour ? Also, does it happen all
the time or once in a while ?

Thanks,
Willy



Reply via email to