[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 16/32] tests/qmp-test: Demonstrate QMP errors ju
From: |
Peter Xu |
Subject: |
Re: [Qemu-devel] [PATCH 16/32] tests/qmp-test: Demonstrate QMP errors jumping the queue |
Date: |
Tue, 3 Jul 2018 14:20:55 +0800 |
User-agent: |
Mutt/1.10.0 (2018-05-17) |
On Mon, Jul 02, 2018 at 06:22:02PM +0200, Markus Armbruster wrote:
> When OOB is enabled, out-of-band commands are executed right away,
> everything else is queued. This lets out-of-band commands "jump the
> queue".
>
> However, certain errors are always reported right away, and therefore
> can jump the queue even when the erroneous input does not request
> out-of-band execution. These errors are pretty unlikely to occur in
> production, but it's wrong all the same. Mark FIXME.
>
> Signed-off-by: Markus Armbruster <address@hidden>
> ---
> monitor.c | 1 +
> tests/qmp-test.c | 7 +++++++
> 2 files changed, 8 insertions(+)
>
> diff --git a/monitor.c b/monitor.c
> index 51ba1485ad..28fa9b8d44 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -4338,6 +4338,7 @@ static void handle_qmp_command(JSONMessageParser
> *parser, GQueue *tokens)
> return;
>
> err:
> + /* FIXME overtakes queued in-band commands, wrong when !qmp_is_oob() */
> monitor_qmp_respond(mon, NULL, err, NULL);
> qobject_unref(req);
> }
> diff --git a/tests/qmp-test.c b/tests/qmp-test.c
> index dc30930201..fe5e5b548a 100644
> --- a/tests/qmp-test.c
> +++ b/tests/qmp-test.c
> @@ -239,6 +239,13 @@ static void test_qmp_oob(void)
> unblock_blocked_cmd();
> recv_cmd_id(qts, "ib-blocks-1");
> recv_cmd_id(qts, "ib-quick-1");
> +
> + /* FIXME certain in-band errors overtake slow in-band command */
> + send_cmd_that_blocks(qts, "blocks-2");
> + qtest_async_qmp(qts, "{ 'id': 'err-2' }");
> + recv_cmd_id(qts, NULL);
(I thought the "id" will be passed in when reply with the error,
though in fact it's not)
Thanks for the test case. I'll work upon it when fixing that up.
Reviewed-by: Peter Xu <address@hidden>
> + unblock_blocked_cmd();
> + recv_cmd_id(qts, "blocks-2");
> cleanup_blocking_cmd();
>
> qtest_quit(qts);
> --
> 2.17.1
>
--
Peter Xu
- [Qemu-devel] [PATCH 19/32] monitor: Rename use_io_thr to use_io_thread, (continued)
- [Qemu-devel] [PATCH 19/32] monitor: Rename use_io_thr to use_io_thread, Markus Armbruster, 2018/07/02
- [Qemu-devel] [PATCH 08/32] tests/test-qga: Demonstrate the guest-agent ignores "id", Markus Armbruster, 2018/07/02
- [Qemu-devel] [PATCH 14/32] qmp: Always free QMPRequest with qmp_request_free(), Markus Armbruster, 2018/07/02
- [Qemu-devel] [PATCH 16/32] tests/qmp-test: Demonstrate QMP errors jumping the queue, Markus Armbruster, 2018/07/02
- [Qemu-devel] [PATCH 18/32] qmp: Don't let JSON errors jump the queue, Markus Armbruster, 2018/07/02
- [Qemu-devel] [PATCH 12/32] qmp: Redo how the client requests out-of-band execution, Markus Armbruster, 2018/07/02
- [Qemu-devel] [PATCH 27/32] qmp: Add some comments around null responses, Markus Armbruster, 2018/07/02
- [Qemu-devel] [PATCH 17/32] qmp: Don't let malformed in-band commands jump the queue, Markus Armbruster, 2018/07/02