[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Issue 4412 and removing some compatibility code from the client

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Wed, 26 Mar 2014 13:15:11 +0000

Issue 4412 http://subversion.tigris.org/issues/show_bug.cgi?id=4412 is a
serf bug that causes the client to incorrectly remove locks from the
working copy during update. This bug is seen when using a 1.8 client
with a 1.6.16 or earlier server: locks get removed from the working copy
but are still present in the repository.

Part of the reason for this bug is that the client has code to work
around a much older server bug. This older server bug was fixed in
r869988 and released in 1.5.0, and was the opposite of 4412: the client
failed to remove a lock from the working copy when the lock was broken
in the repository. Client code that was added to work around this old
bug but this code is broken and now removes locks that should not be
removed.

This old bug only occurs for 1.4 servers (I assume, I can only confirm
that it occurs for 1.5.x before 1.5.0) as later servers are fixed. It
also only occurs when the client is not using bulk updates and by
default the 1.8 does use bulk updates and does not see the bug. 1.5.0
and later servers have the capability to tell the client not to use bulk
updates, but those servers don't have the bug. So as far as I can tell
the only way to trigger this old bug is to manually configure the client
to not use bulk updates, by setting http-bulk-updates=no, and then use a
1.4 server. Even if all the conditions are met to trigger this old bug
the 4412 problem means that the compatibility code doesn't even work all
the time.

So position is that we have this compatibility code for a very old bug
and it doesn't fix the old bug and it triggers a new bug. We could fix
this compatibility code, but the "obvious" fixes I tried introduced
further bugs, see the issue for details.

I propose to remove this compatibility code from 1.8 and trunk. This
will fix the 4412 problem for people using 1.8 client against a 1.6.16
server. I don't think anyone will notice that the removal of the
compatibility code as it doesn't work properly. If somebody does see a
regression with a 1.4 server then removing the setting of
http-bulk-updates=no should be a solution.

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Received on 2014-03-26 14:15:46 CET

This is an archived mail posted to the Subversion Dev mailing list.