On a Wednesday in 2021, Masayoshi Mizuma wrote:
From: Masayoshi Mizuma <m.mizuma@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx> --- 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
Attachment:
signature.asc
Description: PGP signature