Hello again,

thanks for your quick responses!
Problem solved! :-)
my answers below:

> Hi all,
> 
> Le 14/03/2015 15:02, Jarno Huuskonen a écrit :
> > Hi,
> >
> > On Sat, Mar 14, Sebastian Schäfer wrote:
> >>   Hello there,
> >>
> >> When moving from Apache proxy to HAProxy we noticed slow connections and 
> >> frequent disconnects when doing SVN checkouts and commits.
> >> The problems seems to be related to SVN >= 1.8.x.
> >>
> >>
> >> Here's how to reproduce the issue:
> >> - Set up SVN server 1.8.x with Apache
> >> - Configure HAProxy 1.5.x (we use 1.5.5) as standard http/https (or tcp) 
> >> reverse proxy with a simple backend config like this:
> >
> > Have you tested if upgrading to 1.5.11 makes any difference ?

No - not yet.

> >> +++++++++++++++++++++
> >> backend subversion
> >>      option httpclose
> >
> > Is httpclose needed w/svn ?

> I think this is definitely the issue.
> You should enable HTTP keep-alive in your haproxy configuration by
> removing "option httpclose".
> Have a look at "option http-keep-alive" [1] and "option
> prefer-last-server" [2].

This helped! I set instead: 
no option httpclose

Now the performance issue is solved and most checkouts work fine, still some 
ckeckouts get disconnected.

Client message:
- Error retrieving REPORT: The server sent an improper HTTP response

HAProxy message:
- Connection closed during SSL handshake


> See also [3] for the changes in svn, which explain the decreased
> performance.
> 
> [1]
> http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#option%20http-keep-alive
> [2]
> http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#option%20prefer-last-server
> [3] http://subversion.apache.org/docs/release-notes/1.8.html#neon-deleted
> 
> >
> >>      option forwardfor
> >>      server mysvn mysvnserv.mydomain:80 cookie A
> >>      reqirep Destination:\ https(.*) Destination:\ http\\1
> >> +++++++++++++++++++++
> >> - Use an SVN client >= 1.8.x
> >> - Try to commit and checkout a larger number of files
> >> - You will notice slow connections and disconnects
> >>
> >> Apparently SVN clients < 1.8 don't cause the problem, I can checkout large 
> >> repositories without any problems (Maybe related to the serf-library 
> >> introduced in the 1.8 line).
> >> Looks like someone else already ran into the same issue, as you can see 
> >> here: http://grokbase.com/t/subversion/users/148m7sk22k/haproxy-subversion.
> >
> > Have you tried http-bulk-updates: no/yes or disabling compression ?

Bulk updates always worked, yes. 
Didn't try to disable compression though.

> > And do get any errors etc. on the apache logs ?

No errors in Apache log, HAproxy message see above.

> >> Any ideas?
> >
> > What do you get in your logs when svn client fails ?
> > (Maybe even try with: no option dontlog-normal, no option dontlognull)
> >
> > Do you have: no option accept-invalid-http-request or
> > no option accept-invalid-http-response in your config ?

When adding the last two options all checkouts work! :-)

> > And what timeout values do you have in your config ?

Timoutout defaults look like this:
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

> > -Jarno
> >
> 
> 
> -- 
> Cyril Bonté


So summarizing, the backend configuration now looks like this:

backend subversion
        option http-keep-alive
        no option httpclose
        no option accept-invalid-http-request
        no option accept-invalid-http-response
        option forwardfor
        server mysvn mysvnserv.mydomain:80 cookie A
        reqirep Destination:\ https(.*) Destination:\ http\\1

Thanks again and best regards
Sebastian

Reply via email to