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

Re: Always reproducible base checksum mismatch error

From: David Glasser <glasser_at_davidglasser.net>
Date: 2007-11-22 09:23:59 CET

Can you reproduce it over file:/// instead of just over mod_dav_svn?

Can you reproduce it without using the makepassword program (which I
do not have)?

--dave

On Nov 22, 2007 2:57 AM, Philipp Wollermann <philipp@igowo.de> wrote:
> 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
>
>

-- 
David Glasser | glasser_at_davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Nov 22 09:24:11 2007

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