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