phi...@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*