mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 22:25:25 +00:00
qemu: Refresh state before starting the VCPUs
For normal starts (no incoming migration) the refresh of the QEMU
state must be done before the VCPUs getting started since otherwise
there might be a race condition between a possible shutdown of the
guest OS and the QEMU monitor queries.
This fixes "qemu: migration: Refresh device information after
transferring state" (93db7eea1b
).
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
86caae3953
commit
41d37d31b3
@ -6929,10 +6929,17 @@ qemuProcessStart(virConnectPtr conn,
|
||||
}
|
||||
relabel = true;
|
||||
|
||||
if (incoming &&
|
||||
incoming->deferredURI &&
|
||||
qemuMigrationDstRun(driver, vm, incoming->deferredURI, asyncJob) < 0)
|
||||
goto stop;
|
||||
if (incoming) {
|
||||
if (incoming->deferredURI &&
|
||||
qemuMigrationDstRun(driver, vm, incoming->deferredURI, asyncJob) < 0)
|
||||
goto stop;
|
||||
} else {
|
||||
/* Refresh state of devices from QEMU. During migration this happens
|
||||
* in qemuMigrationDstFinish to ensure that state information is fully
|
||||
* transferred. */
|
||||
if (qemuProcessRefreshState(driver, vm, asyncJob) < 0)
|
||||
goto stop;
|
||||
}
|
||||
|
||||
if (qemuProcessFinishStartup(driver, vm, asyncJob,
|
||||
!(flags & VIR_QEMU_PROCESS_START_PAUSED),
|
||||
@ -6945,11 +6952,6 @@ qemuProcessStart(virConnectPtr conn,
|
||||
/* Keep watching qemu log for errors during incoming migration, otherwise
|
||||
* unset reporting errors from qemu log. */
|
||||
qemuMonitorSetDomainLog(priv->mon, NULL, NULL, NULL);
|
||||
|
||||
/* Refresh state of devices from qemu. During migration this needs to
|
||||
* happen after the state information is fully transferred. */
|
||||
if (qemuProcessRefreshState(driver, vm, asyncJob) < 0)
|
||||
goto stop;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user