You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Jan Lambrecht <j....@partezis.be> on 2006/04/21 07:41:30 UTC

Subversion 1.0.5 to 1.2.3 migration: load errors due to checksum mismatch

To: maxb_at_ukf.net

Hi,



I picked up your name from the link below and wondered if you could
somehow give me any pointers or other people to contact about this problem.


Reading: http://svn.haxx.se/users/archive-2004-12/0089.shtml
<http://svn.haxx.se/users/archive-2004-12/0089.shtml> 

I'm having exactly the same problem migrating
from an old Subversion 1.0.5 repository hosted on a Solaris 2.8 system.

[svnadmin@sun-s5:/export/home/svnadmin] svn --version
svn, version 1.0.5 (r9954)
compiled Jun 23 2004, 15:26:54
[svnadmin@sun-s5:/export/home/svnadmin]

migrating to a recent Subversion in a Cygwin environment.

 

[jalambre@pc-jalambre:/c/jalambre/svn] svn --version
svnversion, version 1.2.3 (r15833)
   compiled Sep 13 2005, 22:45:22

Copyright (C) 2000-2005 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
<http://subversion.tigris.org/> 
This product includes software developed by CollabNet
(http://www.Collab.Net/ <http://www.Collab.Net/> ).
...
[jalambre@pc-jalambre:/c/jalambre/svn] cygcheck -c |egrep -i
"subversion|Package"

Cygwin Package Information

Package                 Version              Status

subversion              1.2.3-1              OK

subversion-devel        1.2.3-1              OK

[jalambre@pc-jalambre:/c/jalambre/svn] svnadmin create other
[jalambre@pc-jalambre:/c/jalambre/svn] svnadmin load other
<other.20060223161435 >other.load.log 2>&1
[jalambre@pc-jalambre:/c/jalambre/svn] cat other.load.log
svnadmin: Checksum mismatch, file '/trunk/src/aoiloader/main/aoiloader.dsp':
   expected:  10dfefcb3a2c233fbecacc30f0131cdb
     actual:  2b44a637f14d769dd9a189a94adeda2b

<<< Started new transaction, based on original revision 1
     * adding path : branch ... done.
     * adding path : tag ... done.
     * adding path : trunk ... done.
     * adding path : trunk/readme ... done.
     * adding path : trunk/src ... done.
     * adding path : trunk/src/aoiloader ... done.
     * adding path : trunk/src/aoiloader/bi ... done.
     * adding path : trunk/src/aoiloader/bi/bi.c ... done.
     * adding path : trunk/src/aoiloader/bi/bi.h ... done.
     * adding path : trunk/src/aoiloader/bi/stream.c ... done.
     * adding path : trunk/src/aoiloader/bi/stream.h ... done.
     * adding path : trunk/src/aoiloader/main ... done.
     * adding path : trunk/src/aoiloader/main/aoiloader.dsp ...
[jalambre@pc-jalambre:/c/jalambre/svn] head -1 other.20060223161435
SVN-fs-dump-format-version: 2
[jalambre@pc-jalambre:/c/jalambre/svn]

 

Verification of the original repository yields no errors
and the dump is created right after the verify, also without any errors.

Apparently, the MD5 checksum, calculated by subversion at load time
is incorrect, when it encounters a first DOS-format text file
(aoiloader.dsp).
Remark that the preceding files in the dump are Unix format text files
(bi.c, bi.h, stream.c, stream.h).

I extracted the offending file (aoiloader.dsp) from the dump file, found
after the following file header,

Node-path: trunk/src/aoiloader/main/aoiloader.dsp
Node-kind: file
Node-action: add
Prop-content-length: 35
Text-content-length: 7293
Text-content-md5: 10dfefcb3a2c233fbecacc30f0131cdb
Content-length: 7328

K 14
svn:executable
V 0

PROPS-END

 

and did a manual MD5 on it, which produced the correct result.

[jalambre@pc-jalambre:/c/jalambre/svn] md5 -v
2.0 (2003-04-15)
[jalambre@pc-jalambre:/c/jalambre/svn] ll aoiloader.dsp
-rw-rw-rw- 1 jalambre Domain Users 7293 Feb 25 21:51 aoiloader.dsp
[jalambre@pc-jalambre:/c/jalambre/svn] md5 -l aoiloader.dsp
10dfefcb3a2c233fbecacc30f0131cdb  aoiloader.dsp
[jalambre@pc-jalambre:/c/jalambre/svn]

 

This leads me to conclude that a wrong checksum calculation is done at load
time.
I suppose somehow subversion either uses a different checksum version or
does not
consider the whole file to do the calculation on (omitting trailing ^M
characters ?) ...

 

PS: I also looked at http://www.svnforum.org/2017/viewtopic.php?t=636
<http://www.svnforum.org/2017/viewtopic.php?t=636&sid=c55523c5f63947e133562a
897615ab43> &sid=c55523c5f63947e133562a897615ab43
and my transfer method was simply a file copy via Cygwin over a Samba
mounted drive from the Sun to the PC.
The files concerned are identical (using 'cmp' to compare the original and
the copy).

 

I replicated the whole problem with two simple text files in a new 1.0.5
repository under Solaris 8

(the first a Unix format one, the second a DOS format one),

then dumped the 1.0.5 repository and tried to load in a new 1.2.3 repository
under Windows Cygwin

and got exactly the same result: a load error on the second file due to a
checksum mismatch.

Thanks in advance,

Regards,

Jan Lambrecht
Ontwikkelaar
Email:  <ma...@partezis.be> j.lambrecht@partezis.be


Interleuvenlaan 10
3001  Heverlee
Tel.: 016 39 95 11