79c4324644
Change-Id: I2d302dda68298877c65c99147f5bf22186a59aac
52 lines
2.0 KiB
Diff
52 lines
2.0 KiB
Diff
From 6d4e247786117b0b9b57722778c26328993a8f52 Mon Sep 17 00:00:00 2001
|
|
From: Stefan Berger <stefanb@linux.vnet.ibm.com>
|
|
Date: Fri, 19 Feb 2021 10:57:41 -0500
|
|
Subject: [PATCH 3/6] 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>
|
|
Signed-off-by: yezengruan <yezengruan@huawei.com>
|
|
---
|
|
src/qemu/qemu_process.c | 6 +++---
|
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
|
|
index 4f7bd0586d..d9209ac6d2 100644
|
|
--- a/src/qemu/qemu_process.c
|
|
+++ b/src/qemu/qemu_process.c
|
|
@@ -7410,9 +7410,6 @@ void qemuProcessStop(virQEMUDriverPtr driver,
|
|
/* Do this before we delete the tree and remove pidfile. */
|
|
qemuProcessKillManagedPRDaemon(vm);
|
|
|
|
- virFileDeleteTree(priv->libDir);
|
|
- virFileDeleteTree(priv->channelTargetDir);
|
|
-
|
|
ignore_value(virDomainChrDefForeach(vm->def,
|
|
false,
|
|
qemuProcessCleanupChardevDevice,
|
|
@@ -7432,6 +7429,9 @@ void qemuProcessStop(virQEMUDriverPtr driver,
|
|
|
|
vm->def->id = -1;
|
|
|
|
+ virFileDeleteTree(priv->libDir);
|
|
+ virFileDeleteTree(priv->channelTargetDir);
|
|
+
|
|
/* Stop autodestroy in case guest is restarted */
|
|
qemuProcessAutoDestroyRemove(driver, vm);
|
|
|
|
--
|
|
2.27.0
|
|
|