File not found: transaction …, path …. SVN mysteries behind an Apache Reverse Proxy

December 6th, 2009 by Bogdan Nitulescu in General, Tools

We have an SVN server somewhere on our intranet, but since outside people want to access it, I put it behind an Apache reverse proxy. It was fairly straightforward. Here’s an excellent tutorial if you want to know how to do it: http://silmor.de/49 .

Basically, you have the intranet apache that’s configured to serve SVN, and you have an outside apache in your firewall’s DMZ that proxies the request:

ProxyPass /svn/ http://intranet.example.com/svn/
ProxyPassReverse
/svn/ http://intranet.example.com/svn/

It was all fine when people checked out their sources, but there were strange errors during commits. 7 files commits worked ok. When you tried 8 files or more, you got something like…

File not found: transaction ‘431-12’, path ‘/parser/XMLparser/XMLparser.sln’

It took a lot of sweat to find out why 8 was the magic number – and after a lot of packet dumps and tracing, I found out that one of the servers used HTTP keepalives, and the other one rejected them.

So here’s a couple of rules not to be broken when proxying SVN requests:

Keep the same paths. Do not try something like ProxyPass /svn/ http://intranet.example.com/my_svn/ . It will fail with a cryptic error message at the worst of time.

Keep the same configuration. ┬áCheck your /etc/httpd/conf/httpd.conf on both servers for differences in your configuration. In my case, I had “KeepAlives On” in one server and “KeepAlives Off” in the other. When I put them both to On, it worked just fine.

DZoneGoogle ReaderYahoo MessengerRedditEmailDelicious

You might also like

Perforce Windows shell integration I'm happy again. Perforce shell integration used to make my machine hang on every file browse operation....
Apache Derby versus Hypersonic SQL There are several limitations and problems of Apache Derby as noted in the previous post (http://blog.tremend.ro/2006/10/03/about-the-maturity-of-apache-derby/),...
Spring+JPA with MySQL/Oracle configurations During development for a solution based on Spring+JPA+MySQL/Oracle we came across two settings to...
AJAX file upload monitoring – monitor your file upload with DWR and commons-fileupload Monitoring your file upload using ajax is a must have for any web 2.0 application. There are already...
.

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.