Hi,
I'm using Subversion 1.4.5 + Neon 0.25.5 + Apache 2.2.5, I compiled it all myself without any fancy optimization options. The base system is a minimal Debian Etch installation. I'm experiencing "Base checksum mismatch" errors on commit, which makes our SVN-Repository nearly unusable. I can easily reproduce it in the following way:
Create a new repository:
As user www-data, in the directory where the repositories are kept
$ rm -rf test && svnadmin create test
This repository is now accessible under the URL http://svn.phorge.de/test/ (using mod_dav_svn).
Now "stress testing" the repository:
As a normal user, in my home directory:
$ cat exercise
#!/bin/bash
count=0
rm -rf test &&
svn co http://svn.phorge.de/test/ test &&
cd test &&
makepasswd --chars=64 > test &&
svn add test &&
while [ $count -le 10 ]; do
echo $count &&
makepasswd --randomseed=$count --chars=64 >> test &&
svn ci -m" " || exit
count=$[$count+1]
done
$ ./exercise
Checked out revision 0.
A test
0
Adding test
Transmitting file data .
Committed revision 1.
1
Sending test
Transmitting file data .
Committed revision 2.
2
Sending test
Transmitting file data .
Committed revision 3.
3
Sending test
Transmitting file data .svn: Commit failed (details follow):
svn: Base checksum mismatch on '/test':
expected: 3dc2c676f074c169e81d6e215f8abf8b
actual: b99be5941f3a415575d0c2df64f1cf8c
I found a mail from Philip Martin in the mailing lists, responding to a similar problem. He asked several questions and I thought it may be of help if I answer them in advance:
I'm now in the corrupt working copy, just after the error above occurred:
> Is the date on .svn/text-base/Class.pod.svn-base familiar in any
> way?
$ ls -l --time-style=full-iso .svn/text-base/
total 4
-r--r--r-- 1 philwo philwo 260 2007-11-22 08:25:46.000000000 +0100 test.svn-base
This is the date/time of the last commit.
> Run md5sum on .svn/text-base/Class.pod.svn-base and compare it
> to the checksum for Class.pod stored in .svn/entries, they should
> be the same.
$ md5sum .svn/text-base/test.svn-base
3dc2c676f074c169e81d6e215f8abf8b .svn/text-base/test.svn-base
$ less .svn/entries:
2007-11-22T07:25:46.000000Z
3dc2c676f074c169e81d6e215f8abf8b
2007-11-22T07:25:46.148190Z
> Run svn info on Class.pod and determine the text last updated
> time, is it familiar in any way? Is it the same as the date on
> the text-base? (Note, a difference is not an error, but it might
> help determine what went wrong.)
$ svn info test
Path: test
Name: test
URL: http://svn.phorge.de/test/test
Repository Root: http://svn.phorge.de/test
Repository UUID: 1f2a5906-98cc-11dc-a6a6-931b5ddfb3ff
Revision: 3
Node Kind: file
Schedule: normal
Last Changed Rev: 3
Last Changed Date: 2007-11-22 08:25:46 +0100 (Thu, 22 Nov 2007)
Text Last Updated: 2007-11-22 08:25:46 +0100 (Thu, 22 Nov 2007)
Checksum: 3dc2c676f074c169e81d6e215f8abf8b
> Info also gives you the last changed revision so checkout that
> revision of the directory containing Class.pod.
$ svn co -r 3 http://svn.phorge.de/test/ test2
A test2/test
Checked out revision 3.
> Compare the text-base in the corrupt working copy with that in the
> new one. Is the difference familiar? Are the two text-base files
> the same size?
$ diff -u test2/.svn/text-base/test.svn-base test/.svn/text-base/test.svn-base
--- test2/.svn/text-base/test.svn-base 2007-11-22 08:26:58.000000000 +0100
+++ test/.svn/text-base/test.svn-base 2007-11-22 08:25:46.000000000 +0100
@@ -1,3 +1,4 @@
pHj4MQU4i5qsVF93AHu2KosRPNGK1RqMRwCyC0CwIxsTpUC4nVmBaW67LqRCgVKh
tXNgVqPpSQKtVfIdYnaEyTpLsB7zAHLgc1Gcd0a07jUIjdNBSLpuyY8WC7vstTA6
c0UiAK9vWVjHD7IjMyIoMAj6U3mX4sN7AG3GvSpafTbqswzT8rI2sWidQ6QhpjfL
+JjyiMrno9Pxg2fgT14LxTdvSt5BfhdBH3IzMVMITHLnAob16vm3FcPbf6S3nqADQ
> Run svn log on Class.pod and note the revisions at which it has
> changed. Update Class.pod in the new working copy to each
> revision in turn and look at the checksum in .svn/entries. Do any
> of them match the checksum in the corrupt working copy?
$ svn log test
------------------------------------------------------------------------
r2 | (no author) | 2007-11-22 08:25:45 +0100 (Thu, 22 Nov 2007) | 1 line
------------------------------------------------------------------------
r1 | (no author) | 2007-11-22 08:25:44 +0100 (Thu, 22 Nov 2007) | 1 line
Do you have any idea what may cause these checksum errors and how to stop them?
Best regards,
Philipp
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Nov 22 08:57:54 2007