[libvirt] [PATCH] conf: fix migratable XML for graphics if socket is generated based on config
Jiri Denemark
jdenemar at redhat.com
Thu Nov 30 16:29:34 UTC 2017
On Thu, Nov 30, 2017 at 17:14:34 +0100, Pavel Hrdina wrote:
> The graphics code is complex and there are a lot of exceptions and
> backward compatible combinations. One of them is the possibility
> to configure "spice_auto_unix_socket" in qemu.conf which will convert
> all spice graphics with listen type "address" without any address
> specified to listen type "socket" when the guest is started.
>
> We don't format this generated socket into migratable XML to make
> migration work with older libvirt. However, spice has another
> exception that if autoport='no' and there is no port configured
> it is converted to listen type "none". Because of this we need
> to format autoport='yes' to make sure that the listen type will
> be the same as the offline XML.
>
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1511407
Looks like some areas of our code are even worse than one would be
afraid of :-)
> Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> ---
> src/conf/domain_conf.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index b31917dad9..6b35ebf2e9 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -25159,6 +25159,18 @@ virDomainGraphicsDefFormat(virBufferPtr buf,
> break;
>
> case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET:
> + /* If socket is auto-generated based on config option we don't
> + * add any listen element into migratable XML because the original
> + * listen type is "address".
> + * We need to set autoport to make sure that libvirt on destination
> + * will parse it as listen type "address", without autoport it is
> + * parsed as listen type "none". */
> + if ((flags & VIR_DOMAIN_DEF_FORMAT_MIGRATABLE) &&
> + glisten->fromConfig) {
> + virBufferAddStr(buf, " autoport='yes'");
> + }
> + break;
> +
> case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST:
> break;
> }
Reviewed-by: Jiri Denemark <jdenemar at redhat.com>
More information about the libvir-list
mailing list