
On Tue, Nov 02, 2010 at 01:08:53PM +0000, Daniel P. Berrange wrote:
This patch attempts to introduce a version 3 that uses the improved 5 step sequence
* Src: Begin - Generate XML to pass to dst - Generate optional cookie to pass to dst
* Dst: Prepare - Get ready to accept incoming VM - Generate optional cookie to pass to src
* Src: Perform - Start migration and wait for send completion - Generate optional cookie to pass to dst
* Dst: Finish - Wait for recv completion and check status - Kill off VM if failed, resume if success - Generate optional cookie to pass to src
* Src: Confirm - Kill off VM if success, resume if failed
What happens if no confirmation is recieved (destination silently died)? Will there be a timeout (bad idea), or at least a means by which higher level management can cancel migration? Either way, I did not get the suggestion to contact divinity.
+ /* + * If Perform3 indicated an error, or if NULL was returned + * from Finish3, then the status code tells the source + * to resume CPUs on the original VM. + */ + ret = domain->conn->driver->domainMigrateConfirm3 + (domain->conn, dname, cookiesrc, cookiesrclen, cookiedst, cookiedstlen, + uri, flags, ret >= 0 && domain ? 0 : -1); + /* XXX is there anything we can do if Confirm3 returns -1. + * Probably nothing beyond praying + */