mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
qemuProcessStartWithMemoryState: Don't start qemu with '-loadvm SNAP' and '-incoming defer' together
A bug in qemuProcessStartWithMemoryState caused that we would start qemu
with '-loadvm SNAP' and '-incoming defer' together. qemu doesn't expect
that and crashes on an assertion failure [1].
[1]: https://issues.redhat.com/browse/RHEL-16782
Fixes: 8a88d3e586
Resolves: https://issues.redhat.com/browse/RHEL-17841
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
parent
94ded36b3f
commit
69880584e6
@ -8196,6 +8196,7 @@ qemuProcessStartWithMemoryState(virConnectPtr conn,
|
|||||||
VIR_AUTOCLOSE intermediatefd = -1;
|
VIR_AUTOCLOSE intermediatefd = -1;
|
||||||
g_autoptr(virCommand) cmd = NULL;
|
g_autoptr(virCommand) cmd = NULL;
|
||||||
g_autofree char *errbuf = NULL;
|
g_autofree char *errbuf = NULL;
|
||||||
|
const char *migrateFrom = NULL;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
@ -8207,6 +8208,8 @@ qemuProcessStartWithMemoryState(virConnectPtr conn,
|
|||||||
&errbuf, &cmd) < 0) {
|
&errbuf, &cmd) < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
migrateFrom = "stdio";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No cookie means libvirt which saved the domain was too old to mess up
|
/* No cookie means libvirt which saved the domain was too old to mess up
|
||||||
@ -8220,7 +8223,7 @@ qemuProcessStartWithMemoryState(virConnectPtr conn,
|
|||||||
priv->disableSlirp = true;
|
priv->disableSlirp = true;
|
||||||
|
|
||||||
if (qemuProcessStart(conn, driver, vm, cookie ? cookie->cpu : NULL,
|
if (qemuProcessStart(conn, driver, vm, cookie ? cookie->cpu : NULL,
|
||||||
asyncJob, "stdio", *fd, path, snapshot,
|
asyncJob, migrateFrom, *fd, path, snapshot,
|
||||||
VIR_NETDEV_VPORT_PROFILE_OP_RESTORE,
|
VIR_NETDEV_VPORT_PROFILE_OP_RESTORE,
|
||||||
start_flags) == 0)
|
start_flags) == 0)
|
||||||
*started = true;
|
*started = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user