mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 19:32:19 +00:00
qemu: Fix libvirt hang due to early TPM device stop
This patch partially reverts commit 5cde9dee where the qemuExtDevicesStop() was moved to a location before the QEMU process is stopped. It may be alright to tear down some devices before QEMU is stopped, but it doesn't work for the external TPM (swtpm) which assumes that QEMU sends it a signal to stop it before libvirt may try to clean it up. So this patch moves the virFileDeleteTree() calls after the call to qemuExtDevicesStop() so that the pid file of virtiofsd is not deleted before that call. Afftected libvirt versions are 6.10 and 7.0. Fixes: 5cde9dee8c70b17c458d031ab6cf71dce476eea2 Cc: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com> Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
4fc755bec1
commit
f30aa2ec74
@ -7659,11 +7659,6 @@ void qemuProcessStop(virQEMUDriverPtr driver,
|
||||
/* Do this before we delete the tree and remove pidfile. */
|
||||
qemuProcessKillManagedPRDaemon(vm);
|
||||
|
||||
qemuExtDevicesStop(driver, vm);
|
||||
|
||||
virFileDeleteTree(priv->libDir);
|
||||
virFileDeleteTree(priv->channelTargetDir);
|
||||
|
||||
ignore_value(virDomainChrDefForeach(vm->def,
|
||||
false,
|
||||
qemuProcessCleanupChardevDevice,
|
||||
@ -7677,10 +7672,15 @@ void qemuProcessStop(virQEMUDriverPtr driver,
|
||||
|
||||
qemuDomainCleanupRun(driver, vm);
|
||||
|
||||
qemuExtDevicesStop(driver, vm);
|
||||
|
||||
qemuDBusStop(driver, vm);
|
||||
|
||||
vm->def->id = -1;
|
||||
|
||||
virFileDeleteTree(priv->libDir);
|
||||
virFileDeleteTree(priv->channelTargetDir);
|
||||
|
||||
/* Stop autodestroy in case guest is restarted */
|
||||
qemuProcessAutoDestroyRemove(driver, vm);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user