On a Wednesday in 2021, Masayoshi Mizuma wrote:
From: Masayoshi Mizuma <m.mizuma(a)jp.fujitsu.com>
The VM is terminated abnormally when <transient shareBacking='yes'/>
is set to the disk option and the qemu doesn't have set-action capability.
# virsh start guest01
error: Failed to start domain 'guest01'
error: internal error: qemu unexpectedly closed the monitor
#
Add checking the capability before system_reset QMP command is sent
so that the VM can stop correctly when the qemu doesn't have the cap.
From the commit message it's hard to see the connection between missing
QEMU_CAPS_SET_ACTION and not calling the system_reset command, since
the command was present long before set-action.
Is this the same issue?
https://listman.redhat.com/archives/libvir-list/2021-July/msg00119.html
If I understand correctly, even after Peter's lifecycle event series
we cannot support the combination of:
* -no-reboot on the command line (which is still done for QEMUs without
SET_ACTION, i.e. older than 6.0)
* transient shareBacking disks
In that case, this can be rejected much sooner in qemuValidate, before
even trying to start the QEMU process.
Signed-off-by: Masayoshi Mizuma <m.mizuma(a)jp.fujitsu.com>
---
src/qemu/qemu_process.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 3b4af61bf8..4bedd04679 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -7010,6 +7010,9 @@ qemuProcessSetupDisksTransientHotplug(virDomainObj *vm,
if (hasHotpluggedDisk) {
int rc;
+ if (!(virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_SET_ACTION)))
The error message is missing.
Jano
+ return -1;
+
if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0)
return -1;
--
2.27.0