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: .

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/

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/ . 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.

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....
Spring+JPA with MySQL/Oracle configurations During development for a solution based on Spring+JPA+MySQL/Oracle we came across two settings to...
Escaping in Bash: how to handle multiple file names containing spaces Did you ever saved file names in a bash parameter, and everything crashed down when they contain spaces? The...
Spring magic – Nested transactions The problem: Import a large number of items into a database, commiting valid ones and keeping track of...

Leave a Comment

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