mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 01:45:17 +00:00
Don't generate cookies with v2 migration protocol.
The v2 migration protocol had a limit on cookie length that was too small to be useful for QEMU. Avoid generating cookies with v2 protocol, so that old libvirtd can still reliably migrate a guest to new libvirtd uses v2 protocol. * src/qemu/qemu_driver.c: Avoid migration cookies with v2 migration
This commit is contained in:
parent
03f8832684
commit
6b937b2430
@ -5867,8 +5867,8 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
static int ATTRIBUTE_NONNULL (5)
|
static int ATTRIBUTE_NONNULL (5)
|
||||||
qemudDomainMigratePrepare2 (virConnectPtr dconn,
|
qemudDomainMigratePrepare2 (virConnectPtr dconn,
|
||||||
char **cookie,
|
char **cookie ATTRIBUTE_UNUSED,
|
||||||
int *cookielen,
|
int *cookielen ATTRIBUTE_UNUSED,
|
||||||
const char *uri_in,
|
const char *uri_in,
|
||||||
char **uri_out,
|
char **uri_out,
|
||||||
unsigned long flags,
|
unsigned long flags,
|
||||||
@ -5906,9 +5906,12 @@ qemudDomainMigratePrepare2 (virConnectPtr dconn,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Do not use cookies in v2 protocol, since the cookie
|
||||||
|
* length was not sufficiently large, causing failures
|
||||||
|
* migrating between old & new libvirtd
|
||||||
|
*/
|
||||||
ret = qemuMigrationPrepareDirect(driver, dconn,
|
ret = qemuMigrationPrepareDirect(driver, dconn,
|
||||||
NULL, 0, /* No input cookies in v2 */
|
NULL, 0, NULL, NULL, /* No cookies */
|
||||||
cookie, cookielen,
|
|
||||||
uri_in, uri_out,
|
uri_in, uri_out,
|
||||||
dname, dom_xml);
|
dname, dom_xml);
|
||||||
|
|
||||||
@ -5921,8 +5924,8 @@ cleanup:
|
|||||||
/* Perform is the second step, and it runs on the source host. */
|
/* Perform is the second step, and it runs on the source host. */
|
||||||
static int
|
static int
|
||||||
qemudDomainMigratePerform (virDomainPtr dom,
|
qemudDomainMigratePerform (virDomainPtr dom,
|
||||||
const char *cookie ATTRIBUTE_UNUSED,
|
const char *cookie,
|
||||||
int cookielen ATTRIBUTE_UNUSED,
|
int cookielen,
|
||||||
const char *uri,
|
const char *uri,
|
||||||
unsigned long flags,
|
unsigned long flags,
|
||||||
const char *dname,
|
const char *dname,
|
||||||
@ -5951,6 +5954,12 @@ qemudDomainMigratePerform (virDomainPtr dom,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Do not output cookies in v2 protocol, since the cookie
|
||||||
|
* length was not sufficiently large, causing failures
|
||||||
|
* migrating between old & new libvirtd.
|
||||||
|
*
|
||||||
|
* Consume any cookie we were able to decode though
|
||||||
|
*/
|
||||||
ret = qemuMigrationPerform(driver, dom->conn, vm,
|
ret = qemuMigrationPerform(driver, dom->conn, vm,
|
||||||
uri, cookie, cookielen,
|
uri, cookie, cookielen,
|
||||||
NULL, NULL, /* No output cookies in v2 */
|
NULL, NULL, /* No output cookies in v2 */
|
||||||
@ -5997,8 +6006,12 @@ qemudDomainMigrateFinish2 (virConnectPtr dconn,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Do not use cookies in v2 protocol, since the cookie
|
||||||
|
* length was not sufficiently large, causing failures
|
||||||
|
* migrating between old & new libvirtd
|
||||||
|
*/
|
||||||
dom = qemuMigrationFinish(driver, dconn, vm,
|
dom = qemuMigrationFinish(driver, dconn, vm,
|
||||||
NULL, 0, NULL, NULL, /* No cookies in v2 */
|
NULL, 0, NULL, NULL, /* No cookies */
|
||||||
flags, retcode);
|
flags, retcode);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user