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

Re: svn commit: r1640832 - /subversion/trunk/subversion/libsvn_delta/text_delta.c

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Fri, 21 Nov 2014 10:53:51 +0000

philip_at_apache.org writes:

> Author: philip
> Date: Thu Nov 20 22:36:27 2014
> New Revision: 1640832
> URL: http://svn.apache.org/r1640832
> Log:
> Followup to r1618841, the old fast_memcpy() returned target+len but
> the replacement memcpy() returns target.
> * subversion/libsvn_delta/text_delta.c
> (patterning_copy): Adjust target after memcpy.

This bug caused checksum failures when reading a BDB repository. As far
as I can tell it only affects the BDB code (the delta combiner used in
the BDB code is the only place that generates svn_txdelta_target) and
this code is not exercised by the test suite.

I don't understand the patterns that cause the repository to contain
svn_txdelta_target so I can't easily write a testcase. I've reduced the
original repository that demonstrates the problem to the 14 revisions of
repos-test.c leading up to r840335, but that still a 2.5MB repository:

$ svnadmin create repo --fs-type bdb
$ for r in `svn log -r839490:840335 ../src/subversion/tests/libsvn_repos/repos-test.c -q | awk '/^r/{print $1}'` ; do svn cat ../src/subversion/tests/libsvn_repos/repos-test.c@$r | svnmucc -mm -- put - file://`pwd`/repo/f ; done
$ subversion/svnadmin/svnadmin verify -rhead repo
* Error verifying revision 14.
svnadmin: E160004: Filesystem is corrupt
svnadmin: E200014: MD5 checksum mismatch on representation 'r':
   expected: 5182e8876ed894dc7fe28f6ff5b2fee6
     actual: 24281a451adca3181bfa59f932441a5e

svnadmin: E165011: Repository 'repo' failed to verify

Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Received on 2014-11-21 11:54:23 CET

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