From: John Snow <jsnow@redhat.com>
To: Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org
Cc: erik.rull@rdsoftware.de, paulo.vital@profitbricks.com,
lcapitulino@redhat.com
Subject: Re: [Qemu-devel] [PATCH] qmp: Give saner messages related to qmp_capabilities misuse
Date: Wed, 15 Apr 2015 14:33:28 -0400 [thread overview]
Message-ID: <552EAEF8.4030102@redhat.com> (raw)
In-Reply-To: <552EAE9D.90703@redhat.com>
On 04/15/2015 02:31 PM, Eric Blake wrote:
> On 04/15/2015 12:13 PM, John Snow wrote:
>>
>>
>> On 04/15/2015 11:19 AM, Eric Blake wrote:
>>> Pretending that QMP doesn't understand a command merely because
>>> we are not in the right mode doesn't help first-time users figure
>>> out what to do to correct things. Although the documentation for
>>> QMP calls out capabilities negotiation, we should also make it
>>> clear in our error messages what we were expecting. With this
>>> patch, I now get the following transcript:
>>>
>>> $ ./x86_64-softmmu/qemu-system-x86_64 -qmp stdio -nodefaults
>>> {"QMP": {"version": {"qemu": {"micro": 93, "minor": 2, "major": 2},
>>> "package": ""}, "capabilities": []}}
>>> {"execute":"huh"}
>>> {"error": {"class": "CommandNotFound", "desc": "The command huh has
>>> not been found"}}
>>> {"execute":"quit"}
>>> {"error": {"class": "CommandNotFound", "desc": "Expecting capabilities
>>> negotiation with 'qmp_capabilities' before command 'quit'"}}
>>
>> Any particular reason why we should keep the "CommandNotFound" error
>> class here? Backwards compat? Inertia?
>>
>>> {"execute":"qmp_capabilities"}
>>> {"return": {}}
>>> {"execute":"qmp_capabilities"}
>>> {"error": {"class": "CommandNotFound", "desc": "Capabilities
>>> negotiation is already complete, command 'qmp_capabilities' ignored"}}
>>
>> Same here.
>
> Backwards compat. I can't prove that anyone else was relying on specific
> classes (in particular, although it is unlikely that anyone was issuing
> qmp_capabilities more than once, or cares what error class was returned,
> it IS a useful test for probing if the connection is in capability
> negotiation mode when reconnecting to a monitor after a libvirtd
> restart). It's better to be conservative and avoid changing the error
> class (which must be reliable to machine readers) and only impact the
> error message (which is human readable and is documented to not be
> machine parseable, so we can change that at will).
>
Blast ye, Backwards Compat...
Reviewed-by: John Snow <jsnow@redhat.com>
next prev parent reply other threads:[~2015-04-15 18:33 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-15 15:19 [Qemu-devel] [PATCH] qmp: Give saner messages related to qmp_capabilities misuse Eric Blake
2015-04-15 16:07 ` Kashyap Chamarthy
2015-04-15 16:30 ` Paulo Ricardo Paz Vital
2015-04-15 18:13 ` John Snow
2015-04-15 18:31 ` Eric Blake
2015-04-15 18:33 ` John Snow [this message]
2015-04-21 14:09 ` Luiz Capitulino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=552EAEF8.4030102@redhat.com \
--to=jsnow@redhat.com \
--cc=eblake@redhat.com \
--cc=erik.rull@rdsoftware.de \
--cc=lcapitulino@redhat.com \
--cc=paulo.vital@profitbricks.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).