[PATCH] qemuProcessSetupDisksTransientHotplug: Add checking set-action capability

Ján Tomko jtomko at redhat.com
Thu Aug 26 14:11:15 UTC 2021

On a Wednesday in 2021, Masayoshi Mizuma wrote:
>From: Masayoshi Mizuma <m.mizuma at 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?

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 at 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.


>+            return -1;
>         if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0)
>             return -1;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20210826/00e84aa4/attachment-0001.sig>

More information about the libvir-list mailing list