[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Patch v2] tools/migrate: Fix regression when migrating from older version of Xen
On Tue, Jul 16, 2013 at 6:52 AM, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote:
shouldnt it be a single unary NOT ? i.e., ctx->last_checkpoint = !checkpointed_stream; Otherwise, I am a bit confused. Basically, there is a memset(ctx, 0) right before this.
And you seem to be passing checkpointed_stream = 0 via both xc_restore and libxl which basically sets it back to ctx->last_checkpoint = 0. Also, after getting pages from the last iteration, the code goes like this:
if (ctx->last_checkpoint) goto finish; get pagebuf or goto finish on error get tailbuf or goto finish on error goto loadpages; finish:
... and you setting ctx->last_checkpoint = 0 basically means that you are banking on the far end (with older version of tools) to close the socket, causing "get pagebuf" to fail and subsequently land on finish.
IIRC, this was the behavior before XC_SAVE_ID_LAST_CHECKPOINT was introduced by Ian Campbell, to get rid of this benign error message. "This allows the restore end to finish up without waiting for a
spurious timeout on the receive fd and thereby avoids unnecessary error logging in the case of a successful migration or restore." Further, "In the normal migration or restore case the first checkpoint is always
the last. For a rolling checkpoint (such as Remus) the notification is currently unused " _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |