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