On 29/06/15 17:03, 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.

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.

Please let me know if you have any ideas, or if there is any more information I can provide.

Charlie

I forgot to provide version information in my previous email. Here is is:

HA-Proxy version 1.5.13 2015/06/23
Copyright 2000-2015 Willy Tarreau <[email protected]>

Build options :
  TARGET  = linux2628
  CPU     = generic
  CC      = gcc
CFLAGS = -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2
  OPTIONS = USE_ZLIB=1 USE_OPENSSL=1 USE_PCRE=1

Default settings :
  maxconn = 2000, bufsize = 16384, maxrewrite = 8192, maxpollevents = 200

Encrypted password support via crypt(3): yes
Built with zlib version : 1.2.8
Compression algorithms supported : identity, deflate, gzip
Built with OpenSSL version : OpenSSL 1.0.1f 6 Jan 2014
Running on OpenSSL version : OpenSSL 1.0.1f 6 Jan 2014
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports prefer-server-ciphers : yes
Built with PCRE version : 8.31 2012-07-06
PCRE library supports JIT : no (USE_PCRE_JIT not set)
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND

Available polling systems :
      epoll : pref=300,  test result OK
       poll : pref=200,  test result OK
     select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.

root@balancer-a:/etc/haproxy# uname -a
Linux balancer-a 3.13.0-43-generic #72-Ubuntu SMP Mon Dec 8 19:35:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

root@balancer-a:/etc/haproxy# cat /etc/issue
Ubuntu 14.04.1 LTS \n \l

root@balancer-a:/etc/haproxy# cat /etc/apt/sources.list.d/vbernat-haproxy-1_5-trusty.list
deb http://ppa.launchpad.net/vbernat/haproxy-1.5/ubuntu trusty main
# deb-src http://ppa.launchpad.net/vbernat/haproxy-1.5/ubuntu trusty main

Again, please let me know if any more information would be helpful,

Charlie

Reply via email to