From: Eric Blake <eblake@redhat.com>
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: peterx@redhat.com, stefanha@redhat.com, dgilbert@redhat.com
Subject: Re: [Qemu-devel] [PATCH 07/32] qmp: Make "id" optional again even in "oob" monitors
Date: Mon, 2 Jul 2018 16:13:01 -0500 [thread overview]
Message-ID: <e65a6a3f-4b1a-78db-b412-c1e8ead8448c@redhat.com> (raw)
In-Reply-To: <20180702162218.13678-8-armbru@redhat.com>
On 07/02/2018 11:21 AM, Markus Armbruster wrote:
> Commit cf869d53172 "qmp: support out-of-band (oob) execution" made
> "id" mandatory for all commands when the client accepted capability
> "oob". This is rather onerous when you play with QMP by hand, and
> unnecessarily so: only out-of-band commands need an ID for reliable
> matching of response to command.
>
> Revert that part of commit cf869d53172 for now. We may still make
> "id" mandatory for out-of-band commands.
Fair enough for now (I still think mandatory "id" for oob commands is
worthwhile, but I also think "exec-oob" is worthwhile, and it's probably
easier to write the logic for mandating "id" after that tweak).
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> docs/interop/qmp-spec.txt | 9 +++------
> monitor.c | 7 -------
> 2 files changed, 3 insertions(+), 13 deletions(-)
>
> +++ b/docs/interop/qmp-spec.txt
> @@ -103,16 +103,13 @@ The format for command execution is:
> required. Each command documents what contents will be considered
> valid when handling the json-argument
> - The "id" member is a transaction identification associated with the
> - command execution. It is required for all commands if the OOB -
> - capability was enabled at startup, and optional otherwise. The same
> - "id" field will be part of the response if provided. The "id"
> - member can be any json-value. A json-number incremented for each
> - successive command works fine.
> + command execution, it is optional and will be part of the response
> + if provided. The "id" member can be any json-value. A json-number
> + incremented for each successive command works fine.
> - The optional "control" member further specifies how the command is
> to be executed. Currently, its only member is optional "run-oob".
> See section "2.3.1 Out-of-band execution" for details.
We should STILL recommend that a client should use "id" when using oob,
whether or not we mandate it later.
>
> -
> 2.3.1 Out-of-band execution
> ---------------------------
>
> diff --git a/monitor.c b/monitor.c
> index 96e87d8664..b7d74b01b4 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -4291,13 +4291,6 @@ static void handle_qmp_command(JSONMessageParser *parser, GQueue *tokens)
>
> id = qdict_get(qdict, "id");
>
> - /* When OOB is enabled, the "id" field is mandatory. */
> - if (qmp_oob_enabled(mon) && !id) {
> - error_setg(&err, "Out-of-band capability requires that "
> - "every command contains an 'id' field");
> - goto err;
> - }
I can live with this hunk right away, but the documentation feels weak
enough that I'm reluctant to give R-b to the patch as-is
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
next prev parent reply other threads:[~2018-07-02 21:13 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-02 16:21 [Qemu-devel] [PATCH 00/32] qmp: Fixes and cleanups around OOB commands Markus Armbruster
2018-07-02 16:21 ` [Qemu-devel] [PATCH 01/32] qmp: Say "out-of-band" instead of "Out-Of-Band" Markus Armbruster
2018-07-02 20:46 ` Eric Blake
2018-07-02 16:21 ` [Qemu-devel] [PATCH 02/32] monitor: Spell "I/O thread" consistently in comments Markus Armbruster
2018-07-02 20:48 ` Eric Blake
2018-07-02 16:21 ` [Qemu-devel] [PATCH 03/32] docs/interop/qmp: Improve OOB documentation Markus Armbruster
2018-07-02 20:54 ` Eric Blake
2018-07-03 6:01 ` Markus Armbruster
2018-07-02 16:21 ` [Qemu-devel] [PATCH 04/32] qmp: Document COMMAND_DROPPED design flaw Markus Armbruster
2018-07-02 20:58 ` Eric Blake
2018-07-02 16:21 ` [Qemu-devel] [PATCH 05/32] qmp: Get rid of x-oob-test command Markus Armbruster
2018-07-02 21:08 ` Eric Blake
2018-07-03 6:05 ` Markus Armbruster
2018-07-02 16:21 ` [Qemu-devel] [PATCH 06/32] tests/qmp-test: Test in-band command doesn't overtake Markus Armbruster
2018-07-02 21:09 ` Eric Blake
2018-07-02 16:21 ` [Qemu-devel] [PATCH 07/32] qmp: Make "id" optional again even in "oob" monitors Markus Armbruster
2018-07-02 21:13 ` Eric Blake [this message]
2018-07-03 6:06 ` Markus Armbruster
2018-07-03 3:36 ` Peter Xu
2018-07-03 6:14 ` Markus Armbruster
2018-07-03 6:24 ` Peter Xu
2018-07-03 9:08 ` Daniel P. Berrangé
2018-07-02 16:21 ` [Qemu-devel] [PATCH 08/32] tests/test-qga: Demonstrate the guest-agent ignores "id" Markus Armbruster
2018-07-02 21:15 ` Eric Blake
2018-07-03 6:27 ` Markus Armbruster
2018-07-02 16:21 ` [Qemu-devel] [PATCH 09/32] qmp qemu-ga: Revert change that accidentally made qemu-ga accept "id" Markus Armbruster
2018-07-02 21:44 ` Eric Blake
2018-07-02 16:21 ` [Qemu-devel] [PATCH 10/32] tests/test-qga: Demonstrate the guest-agent ignores "control" Markus Armbruster
2018-07-03 1:47 ` Eric Blake
2018-07-03 6:29 ` Markus Armbruster
2018-07-02 16:21 ` [Qemu-devel] [PATCH 11/32] qmp qemu-ga: Fix qemu-ga not to accept "control" Markus Armbruster
2018-07-03 1:49 ` Eric Blake
2018-07-02 16:21 ` [Qemu-devel] [PATCH 12/32] qmp: Redo how the client requests out-of-band execution Markus Armbruster
2018-07-03 1:57 ` Eric Blake
2018-07-02 16:21 ` [Qemu-devel] [PATCH 13/32] qmp: Revert change to handle_qmp_command tracepoint Markus Armbruster
2018-07-03 1:58 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 14/32] qmp: Always free QMPRequest with qmp_request_free() Markus Armbruster
2018-07-03 2:01 ` Eric Blake
2018-07-03 6:38 ` Markus Armbruster
2018-07-02 16:22 ` [Qemu-devel] [PATCH 15/32] qmp: Simplify code around monitor_qmp_dispatch_one() Markus Armbruster
2018-07-03 2:04 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 16/32] tests/qmp-test: Demonstrate QMP errors jumping the queue Markus Armbruster
2018-07-03 2:07 ` Eric Blake
2018-07-03 6:20 ` Peter Xu
2018-07-03 6:54 ` Markus Armbruster
2018-07-02 16:22 ` [Qemu-devel] [PATCH 17/32] qmp: Don't let malformed in-band commands jump " Markus Armbruster
2018-07-03 2:11 ` Eric Blake
2018-07-03 6:46 ` Markus Armbruster
2018-07-02 16:22 ` [Qemu-devel] [PATCH 18/32] qmp: Don't let JSON errors " Markus Armbruster
2018-07-03 2:13 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 19/32] monitor: Rename use_io_thr to use_io_thread Markus Armbruster
2018-07-03 2:13 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 20/32] monitor: Peel off @mon_global wrapper Markus Armbruster
2018-07-03 2:15 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 21/32] qobject: New qdict_from_jsonf_nofail() Markus Armbruster
2018-07-03 2:16 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 22/32] qmp: De-duplicate error response building Markus Armbruster
2018-07-03 2:18 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 23/32] qmp: Use QDict * instead of QObject * for response objects Markus Armbruster
2018-07-03 2:21 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 24/32] qmp: Replace monitor_json_emitter{, raw}() by qmp_{queue, send}_response() Markus Armbruster
2018-07-03 2:25 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 25/32] qmp: Replace get_qmp_greeting() by qmp_greeting() Markus Armbruster
2018-07-03 2:26 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 26/32] qmp: Simplify monitor_qmp_respond() Markus Armbruster
2018-07-03 2:28 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 27/32] qmp: Add some comments around null responses Markus Armbruster
2018-07-03 2:28 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 28/32] qmp: Switch timestamp_put() to qdict_from_jsonf_nofail() Markus Armbruster
2018-07-03 2:29 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 29/32] qobject: Let qobject_from_jsonf() fail instead of abort Markus Armbruster
2018-07-03 2:30 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 30/32] qmp: Clean up capability negotiation after commit 02130314d8c Markus Armbruster
2018-07-03 2:33 ` Eric Blake
2018-07-03 6:50 ` Markus Armbruster
2018-07-02 16:22 ` [Qemu-devel] [PATCH 31/32] monitor: Improve some comments Markus Armbruster
2018-07-03 2:36 ` Eric Blake
2018-07-02 16:22 ` [Qemu-devel] [PATCH 32/32] qapi: Polish command flags documentation in qapi-code-gen.txt Markus Armbruster
2018-07-03 2:38 ` Eric Blake
2018-07-03 5:35 ` [Qemu-devel] [PATCH 00/32] qmp: Fixes and cleanups around OOB commands Markus Armbruster
2018-07-03 6:36 ` Peter Xu
2018-07-03 6:57 ` Markus Armbruster
2018-07-03 7:05 ` Marc-André Lureau
2018-07-03 8:36 ` Markus Armbruster
2018-07-03 9:08 ` Markus Armbruster
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=e65a6a3f-4b1a-78db-b412-c1e8ead8448c@redhat.com \
--to=eblake@redhat.com \
--cc=armbru@redhat.com \
--cc=dgilbert@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/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).