On Mon, Feb 6, 2012 at 14:32, Hyrum K Wright <hyrum.wri...@wandisco.com> wrote: > On Mon, Feb 6, 2012 at 1:28 PM, Greg Stein <gst...@gmail.com> wrote: >> On Mon, Feb 6, 2012 at 12:48, <hwri...@apache.org> wrote: >>> Author: hwright >>> Date: Mon Feb 6 17:48:36 2012 >>> New Revision: 1241097 >>> >>> URL: http://svn.apache.org/viewvc?rev=1241097&view=rev >>> Log: >>> Ev2 shims: Truthfully report our base checksum as being that of the empty >>> stream. >>> >>> Note: This breaks several assumptions in various delta-editor receivers >>> about >>> the validity of this checksum. These have been patched to ignore the >>> checksum >>> if it is that of the empty stream. This will not affect correctness, as the >>> final checksum, as supplied by close_file() is still used to detect >>> corruption, >>> and it hasn't changed. >> >> How does this even work? Sure, the checksum isn't checked, but the >> delta-editor receiver is going to choose the wrong base contents to >> apply the delta against. > > Huh? The delta-editor receiver isn't using this to choose any base > contents, it's simply using it as some kind of intermediate > verification step. > > Before this change, we just passed a NULL checksum, which was *always* > ignored, and everything Just Worked. With this change, we started > being honest, and various pieces of the system didn't appreciate that > honesty.
If the shim sends a delta against the empty-stream, then how can the Ev1 receiver properly apply that? Won't the receiver use some selected base contents? ie. NOT the empty stream? I'm thinking of the delta application to a base. How can that possibly work, if the shim creates a delta against the empty stream? Cheers, -g