new rsync release needed soon?

Donovan Baarda abo at
Wed Jul 31 17:05:01 EST 2002

On Wed, Jul 31, 2002 at 04:28:55PM -0700, Wayne Davison wrote:
> On Wed, 31 Jul 2002, Robert Weber wrote:
> > On the subject of needed patches, I just recently completed a patch for
> > librsync that fixed the mdfour code to have uint_64 or 2 uint_32's for
> > size.  Without this, the checksums on files >512Megs are incorrect.
> In order to interoperate with older versions of rsync, wouldn't we need
> to continue to generate the incorrect checksums on all but the newest
> (freshly bumped up) protocol number?
> ..wayne..

I'm not sure... it probably needs more analysis.

rsync primarily uses mdfour sums as the big checksums on blocks in the
signature. I think it highly unlikely that blocksizes of greater than 512M
are used, so this change wouldn't affect that.

However, it looks like rsync also uses mdfour for it's "whole file"
checksums when using the -c option. In this case, any file larger than 512M
would end up with a different whole file sum, causing it to do a full
signature/delta/patch when it is not needed. However, the resulting delta
would be very small, so this might be tolerable.

The biggest worry is I think rsync also does whole file sums for any
signature/delta/patch to double (triple?) check the final result. If this is
the case, then yes, fixing mdfour will break old rsync'ing of files greater
than 512M.

If this is really an issue, I can "cripple" the patch with one line so that
it conforms with the old mdfour code. This would give you the performance
benefits, and a single line change to "uncripple" it further down the track.
Alternatively I could add a modified finalise function to give crippled
sums, allowing the application software to pick what kind of sum it wants.

Someone on the librsync lists mentioned a while back that some rsync or
samba person had identified a bug in the mdfour finalise routines and had a
fix for it. I'm not sure if this 512M limit was it. I'd be interested to
know if/how this affects samba.

ABO: finger abo at for more info, including pgp key

More information about the rsync mailing list