qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Hanna Reitz <hreitz@redhat.com>
To: John Snow <jsnow@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	qemu-block@nongnu.org, Cleber Rosa <crosa@redhat.com>
Subject: Re: [PATCH 13/15] iotests: Accommodate async QMP Exception classes
Date: Fri, 17 Sep 2021 16:35:20 +0200	[thread overview]
Message-ID: <5ef334d0-515b-42bf-01a0-b933c413c01e@redhat.com> (raw)
In-Reply-To: <20210917054047.2042843-14-jsnow@redhat.com>

On 17.09.21 07:40, John Snow wrote:
> (But continue to support the old ones for now, too.)
>
> There are very few cases of any user of QEMUMachine or a subclass
> thereof relying on a QMP Exception type. If you'd like to check for
> yourself, you want to grep for all of the derivatives of QMPError,
> excluding 'AQMPError' and its derivatives. That'd be these:
>
> - QMPError
> - QMPConnectError
> - QMPCapabilitiesError
> - QMPTimeoutError
> - QMPProtocolError
> - QMPResponseError
> - QMPBadPortError
>
>
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>   scripts/simplebench/bench_block_job.py    | 3 ++-
>   tests/qemu-iotests/tests/mirror-top-perms | 6 +++++-
>   2 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/simplebench/bench_block_job.py b/scripts/simplebench/bench_block_job.py
> index 4f03c12169..a403c35b08 100755
> --- a/scripts/simplebench/bench_block_job.py
> +++ b/scripts/simplebench/bench_block_job.py
> @@ -28,6 +28,7 @@
>   sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
>   from qemu.machine import QEMUMachine
>   from qemu.qmp import QMPConnectError
> +from qemu.aqmp import ConnectError
>   
>   
>   def bench_block_job(cmd, cmd_args, qemu_args):
> @@ -49,7 +50,7 @@ def bench_block_job(cmd, cmd_args, qemu_args):
>           vm.launch()
>       except OSError as e:
>           return {'error': 'popen failed: ' + str(e)}
> -    except (QMPConnectError, socket.timeout):
> +    except (QMPConnectError, ConnectError, socket.timeout):
>           return {'error': 'qemu failed: ' + str(vm.get_log())}
>   
>       try:
> diff --git a/tests/qemu-iotests/tests/mirror-top-perms b/tests/qemu-iotests/tests/mirror-top-perms
> index 451a0666f8..7d448f4d23 100755
> --- a/tests/qemu-iotests/tests/mirror-top-perms
> +++ b/tests/qemu-iotests/tests/mirror-top-perms
> @@ -103,7 +103,11 @@ class TestMirrorTopPerms(iotests.QMPTestCase):
>               print('ERROR: VM B launched successfully, this should not have '
>                     'happened')
>           except qemu.qmp.QMPConnectError:
> -            assert 'Is another process using the image' in self.vm_b.get_log()
> +            pass
> +        except qemu.aqmp.ConnectError:
> +            pass
> +
> +        assert 'Is another process using the image' in self.vm_b.get_log()

But this assertion will fail if there was no exception, and so we won’t 
get to see the real problem, which is the original VM aborting (see the 
doc string).

It doesn’t really matter that much that VM B can start (hence it being a 
logged error message, not a fatal error), and when it can start, of 
course it won’t print an error – but what’s important is that the 
original VM will then abort.

I mean, not an absolute showstopper by any means, but still, the 
assertion was deliberately placed into the `except` block.

Hanna



  reply	other threads:[~2021-09-17 14:54 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-17  5:40 [PATCH 00/15] Switch iotests to using Async QMP John Snow
2021-09-17  5:40 ` [PATCH 01/15] python/aqmp: add greeting property to QMPClient John Snow
2021-09-17 12:20   ` Hanna Reitz
2021-09-17  5:40 ` [PATCH 02/15] python/aqmp: add .empty() method to EventListener John Snow
2021-09-17 12:25   ` Hanna Reitz
2021-09-17  5:40 ` [PATCH 03/15] python/aqmp: Return cleared events from EventListener.clear() John Snow
2021-09-17 12:36   ` Hanna Reitz
2021-09-17 17:19     ` John Snow
2021-10-04  9:03       ` Hanna Reitz
2021-09-17  5:40 ` [PATCH 04/15] python/qmp: clear events on get_events() call John Snow
2021-09-17 12:51   ` Hanna Reitz
2021-09-17 17:31     ` John Snow
2021-09-17  5:40 ` [PATCH 05/15] python/qmp: add send_fd_scm directly to QEMUMonitorProtocol John Snow
2021-09-17 13:21   ` Hanna Reitz
2021-09-17 17:36     ` John Snow
2021-09-17  5:40 ` [PATCH 06/15] python, iotests: remove socket_scm_helper John Snow
2021-09-17 13:24   ` Hanna Reitz
2021-09-17  5:40 ` [PATCH 07/15] python/aqmp: add send_fd_scm John Snow
2021-09-17 13:34   ` Hanna Reitz
2021-09-17 18:05     ` John Snow
2021-09-17  5:40 ` [PATCH 08/15] python/aqmp: Create MessageModel and StandaloneModel classes John Snow
2021-09-17 13:39   ` Hanna Reitz
2021-09-17 19:21     ` John Snow
2021-09-17  5:40 ` [PATCH 09/15] python/machine: remove has_quit argument John Snow
2021-09-17 13:59   ` Hanna Reitz
2021-09-17 23:12     ` John Snow
2021-09-17  5:40 ` [PATCH 10/15] python/machine: Add support for AQMP backend John Snow
2021-09-17 14:16   ` Hanna Reitz
2021-09-17 23:48     ` John Snow
2021-10-04  9:43       ` Hanna Reitz
2021-09-17  5:40 ` [PATCH 11/15] python/aqmp: Create sync QMP wrapper for iotests John Snow
2021-09-17 14:23   ` Hanna Reitz
2021-09-18  0:01     ` John Snow
2021-09-17  5:40 ` [PATCH 12/15] iotests: Disable AQMP logging under non-debug modes John Snow
2021-09-17 14:30   ` Hanna Reitz
2021-09-18  0:58     ` John Snow
2021-09-18  2:14       ` John Snow
2021-10-04 10:12         ` Hanna Reitz
2021-10-04 18:32           ` John Snow
2021-10-04 21:26             ` John Snow
2021-10-05 15:12             ` Hanna Reitz
2021-10-04  9:52       ` Hanna Reitz
2021-09-17  5:40 ` [PATCH 13/15] iotests: Accommodate async QMP Exception classes John Snow
2021-09-17 14:35   ` Hanna Reitz [this message]
2021-09-18  1:12     ` John Snow
2021-09-17  5:40 ` [PATCH 14/15] python/aqmp: Remove scary message John Snow
2021-09-17 14:38   ` Hanna Reitz
2021-09-17 15:15     ` John Snow
2021-09-17  5:40 ` [PATCH 15/15] python, iotests: replace qmp with aqmp John Snow
2021-09-17 14:40   ` Hanna Reitz
2021-09-17 14:55     ` John Snow

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=5ef334d0-515b-42bf-01a0-b933c413c01e@redhat.com \
    --to=hreitz@redhat.com \
    --cc=crosa@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=vsementsov@virtuozzo.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).