[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [Qemu-devel] qemu mainline regression with xen-unstable: unable to start QMP



[adding Markus, as author of the regression]

On 06/04/2015 03:59 PM, Don Slutz wrote:
> On 06/04/15 11:04, Fabio Fantoni wrote:
>> Today after trying xen-unstable build (tested many hours) of some days
>> ago I tried update qemu to latest development version (from git master
>> commit 6fa6b312765f698dc81b2c30e7eeb9683804a05b) and seems that there is
>> a regression:
>>> xl create /etc/xen/W7.cfg
>>> Parsing config from /etc/xen/W7.cfg
>>> libxl: error: libxl_qmp.c:287:qmp_handle_error_response: received an
>>> error message from QMP server: QMP input object member 'id' is unexpected
>>> libxl: error: libxl_qmp.c:715:libxl__qmp_initialize: Failed to connect
>>> to QMP
>>
> 
> This is caused by:
> 
> commit 65207c59d99f2260c5f1d3b9c491146616a522aa
> Author: Markus Armbruster <armbru@xxxxxxxxxx>
> Date:   Thu Mar 5 14:35:26 2015 +0100
> 
>     monitor: Drop broken, unused asynchronous command interface
> 

> The patch:
> 
>>From 1b0221078353870fe530e49de158cae205f9bce5 Mon Sep 17 00:00:00 2001
> From: Don Slutz <dslutz@xxxxxxxxxxx>
> Date: Thu, 4 Jun 2015 17:04:42 -0400
> Subject: [PATCH 01/14] monitor: Allow Xen's (broken) usage of asynchronous
>  command interface.
> 
> commit 65207c59d99f2260c5f1d3b9c491146616a522aa
> Author: Markus Armbruster <armbru@xxxxxxxxxx>
> Date:   Thu Mar 5 14:35:26 2015 +0100
> 
>     monitor: Drop broken, unused asynchronous command interface
> 
> Breaks Xen.  Add a hack un unbreak it.

s/un /to /

> 
> Xen is only doing synchronous commands, but is including an id.

QMP also uses id, but apparently removes it up front before calling into
this function; so another fix would be having xen remove it up front.

> 
> Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx>
> ---
>  monitor.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/monitor.c b/monitor.c
> index c7baa91..e9a0747 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -4955,6 +4955,15 @@ static QDict *qmp_check_input_obj(QObject
> *input_obj, Error **errp)
>                            "arguments", "object");
>                  return NULL;
>              }
> +        } else if (!strcmp(arg_name, "id")) {
> +            /*
> +             * Fixup Xen's usage. Just ignore the "id". See point #5
> +             * above.  This was an attempt at an asynchronous
> +             * command interface.  However commit
> +             * 65207c59d99f2260c5f1d3b9c491146616a522aa is
> +             * wrong. Xen does not expect an error when it passes in
> +             * "id":1, so just continue to ignore it.
> +             */

The comment is a bit verbose, particularly since 'id' is a
well-established usage pattern in QMP.  Also, we don't need to call out
why it changed in the comment here, the commit message is sufficient for
that.

>          } else {
>              error_set(errp, QERR_QMP_EXTRA_MEMBER, arg_name);
>              return NULL;
> 

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.