On Thu, Apr 02, 2009 at 12:01:02PM -0400, Seymen Ertas wrote:
> Hi all,
> I am having an interesting issue with a master slave configuration of SVN.
> Some files (seems to be larger ones) cause checksum mismatch error as follows:
> Checksum mismatch, file '/XXXX XX.png':\n
> expected: d37443091695c3f64ebc6f2d4d7a421c\n
> actual: 4a28f19a9c8f765f5df26c730bdaeca0\n
> during a commit operation. This file does not exist on the server and
> it is the initial commit.
We've been battling this issue here and there for a little bit now, as
well, and I think we may have found the smoking gun earlier this week;
now we're attempting to fix it in our server(s). File size is *not* an
issue, however, and we've been able to reproduce the problem with a file
in the 2k neighborhood.
For a quick reference, one of our engineers sent a message to the SVN
dev mailing list to confirm and/or see if there's an easy/suggested fix.
More of the gory details, however, follows.
In the case of a mirrored system, there appears to be some level of
content filtering done on the message body when it's sent through the
proxy and up to the master. To be more specific, seems there's a
case-insensitive replacement of part of the respository path done to
the message payload (eg. /SVN becomes /svn).
After chasing around for a few "off-by-one" and similar situations, we
reassembled the "actual" file transmitted to the master and correctly
verified the "actual" checksum. A quick diff of that file against the
original file showed a simple three-character difference (the smoking
gun). That was "SVN" versus "svn" (the leading path of our repository).
> I do have a file available which reproduces the issue every time as
> well ethereal (now called wireshark) dumps of the transmission.
> Just wondering anyone out there has some thoughts on the subject or
> things to try out ?
You can see if you can use that snoop to reassemble the file, and then
diff i to see if your issue corresponds? Or perhaps you can try to
construct a smaller file that also demonstrates the issue and go from
Here's my "sanitized" demonstration of the issue.
~/svn/sandbox> svn commit -m "Adding problematic SVN Checksum file"
Subversion repository Password for 'russell':
Transmitting file data .svn: Commit failed (details follow):
svn: Checksum mismatch, file '/sandbox/viewvc.cgi':
~/svn/sandbox> openssl md5 viewvc*
~/svn/foo/trunk/sandbox> diff viewvc.cgi viewvc-case.cgi
< # viewvc: View CVS/SVN repositories via a web browser
> # viewvc: View CVS/svn repositories via a web browser
Hope that helps!
Received on 2009-06-20 04:07:01 CEST