From: Hanna Reitz <hreitz@redhat.com>
To: John Snow <jsnow@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org
Subject: Re: [PATCH 00/15] iotests: add enhanced debugging info to qemu-io failures
Date: Tue, 22 Mar 2022 18:18:29 +0100 [thread overview]
Message-ID: <06acbaf5-0e47-52f1-df79-5161b6c68424@redhat.com> (raw)
In-Reply-To: <20220318203655.676907-1-jsnow@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2677 bytes --]
On 18.03.22 21:36, John Snow wrote:
> Howdy,
Heya,
[...]
> - Uh, actually, test 040 fails with this patchset and I don't understand
> if it's intentional, harmless, a test design problem, or worse:
>
> ======================================================================
> ERROR: test_filterless_commit (__main__.TestCommitWithFilters)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/home/jsnow/src/qemu/tests/qemu-iotests/040", line 822, in tearDown
> self.do_test_io('read')
> File "/home/jsnow/src/qemu/tests/qemu-iotests/040", line 751, in do_test_io
> qemu_io('-f', iotests.imgfmt,
> File "/home/jsnow/src/qemu/tests/qemu-iotests/iotests.py", line 365, in qemu_io
> return qemu_tool(*qemu_io_wrap_args(args),
> File "/home/jsnow/src/qemu/tests/qemu-iotests/iotests.py", line 242, in qemu_tool
> raise VerboseProcessError(
>
> qemu.utils.VerboseProcessError: Command
> '('/home/jsnow/src/qemu/bin/git/tests/qemu-iotests/../../qemu-io',
> '--cache', 'writeback', '--aio', 'threads', '-f', 'qcow2', '-c',
> 'read -P 4 3M 1M',
> '/home/jsnow/src/qemu/bin/git/tests/qemu-iotests/scratch/3.img')'
> returned non-zero exit status 1.
> ┏━ output ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> ┃ qemu-io: can't open device
> ┃ /home/jsnow/src/qemu/bin/git/tests/qemu-iotests/scratch/3.img:
> ┃ Could not open backing file: Could not open backing file: Throttle
> ┃ group 'tg' does not exist
> ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>
> It looks like we start with the img chain 3->2->1->0, then we commit 2
> down into 1, but checking '3' fails somewhere in the backing
> chain. Maybe a real bug?
Looks like my hunch was right: The problem is that it’s hard to figure
out a good backing file string when there are filters involved, and so
in one test here we generate one that contains a JSON description of the
backing subgraph including a throttle node. Outside of qemu, that
doesn’t make much sense, hence the error.
(And because we checked only for “pattern verification failed”
specifically, that error here never surfaced.)
I think (hope?) we can expect management tools to manually specify
backing file strings in such cases, like the attached diff does. That
seems to fix the problem.
Hanna
[-- Attachment #2: 040.diff --]
[-- Type: text/x-patch, Size: 1091 bytes --]
diff --git a/tests/qemu-iotests/040 b/tests/qemu-iotests/040
index c4a90937dc..30eb97829e 100755
--- a/tests/qemu-iotests/040
+++ b/tests/qemu-iotests/040
@@ -836,7 +836,8 @@ class TestCommitWithFilters(iotests.QMPTestCase):
job_id='commit',
device='top-filter',
top_node='cow-2',
- base_node='cow-1')
+ base_node='cow-1',
+ backing_file=self.img1)
self.assert_qmp(result, 'return', {})
self.wait_until_completed(drive='commit')
@@ -852,7 +853,8 @@ class TestCommitWithFilters(iotests.QMPTestCase):
job_id='commit',
device='top-filter',
top_node='cow-1',
- base_node='cow-0')
+ base_node='cow-0',
+ backing_file=self.img0)
self.assert_qmp(result, 'return', {})
self.wait_until_completed(drive='commit')
prev parent reply other threads:[~2022-03-22 17:20 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-18 20:36 [PATCH 00/15] iotests: add enhanced debugging info to qemu-io failures John Snow
2022-03-18 20:36 ` [PATCH 01/15] iotests: replace calls to log(qemu_io(...)) with qemu_io_log() John Snow
2022-03-21 13:35 ` Eric Blake
2022-03-22 13:51 ` Hanna Reitz
2022-03-18 20:36 ` [PATCH 02/15] iotests/163: Fix broken qemu-io invocation John Snow
2022-03-21 13:44 ` Eric Blake
2022-03-22 14:07 ` Hanna Reitz
2022-03-18 20:36 ` [PATCH 03/15] iotests: Don't check qemu_io() output for specific error strings John Snow
2022-03-21 13:48 ` Eric Blake
2022-03-22 14:16 ` Hanna Reitz
2022-03-18 20:36 ` [PATCH 04/15] iotests/040: Don't check image pattern on zero-length image John Snow
2022-03-21 14:58 ` Eric Blake
2022-03-22 14:22 ` Hanna Reitz
2022-03-22 16:19 ` John Snow
2022-03-22 17:12 ` Hanna Reitz
2022-03-18 20:36 ` [PATCH 05/15] iotests: create generic qemu_tool() function John Snow
2022-03-21 15:13 ` Eric Blake
2022-03-21 16:20 ` John Snow
2022-03-22 14:49 ` Hanna Reitz
2022-03-22 16:25 ` John Snow
2022-03-18 20:36 ` [PATCH 06/15] iotests: rebase qemu_io() on top of qemu_tool() John Snow
2022-03-21 15:29 ` Eric Blake
2022-03-21 16:57 ` John Snow
2022-03-22 15:04 ` Hanna Reitz
2022-03-22 16:30 ` John Snow
2022-03-18 20:36 ` [PATCH 07/15] iotests/030: fixup John Snow
2022-03-18 20:36 ` [PATCH 08/15] iotests/149: fixup John Snow
2022-03-22 16:29 ` Hanna Reitz
2022-03-18 20:36 ` [PATCH 09/15] iotests/205: fixup John Snow
2022-03-18 20:36 ` [PATCH 10/15] iotests/245: fixup John Snow
2022-03-21 17:42 ` Eric Blake
2022-03-22 16:30 ` Hanna Reitz
2022-03-22 16:36 ` John Snow
2022-03-22 16:38 ` Hanna Reitz
2022-03-22 17:00 ` John Snow
2022-03-18 20:36 ` [PATCH 11/15] iotests/migration-permissions: fixup John Snow
2022-03-18 20:36 ` [PATCH 12/15] iotests/migration-permissions: use assertRaises() for qemu_io() negative test John Snow
2022-03-21 18:07 ` Eric Blake
2022-03-22 16:37 ` Hanna Reitz
2022-03-22 17:12 ` John Snow
2022-03-18 20:36 ` [PATCH 13/15] iotests: remove qemu_io_pipe_and_status() John Snow
2022-03-21 18:09 ` Eric Blake
2022-03-22 16:39 ` Hanna Reitz
2022-03-22 19:28 ` John Snow
2022-03-18 20:36 ` [PATCH 14/15] iotests: remove qemu_io_silent() and qemu_io_silent_check() John Snow
2022-03-21 18:16 ` Eric Blake
2022-03-21 20:07 ` John Snow
2022-03-22 16:59 ` Hanna Reitz
2022-03-22 17:16 ` John Snow
2022-03-18 20:36 ` [PATCH 15/15] iotests: make qemu_io_log() check return codes by default John Snow
2022-03-21 18:22 ` Eric Blake
2022-03-21 20:09 ` John Snow
2022-03-22 17:03 ` Hanna Reitz
2022-03-22 17:18 ` Hanna Reitz [this message]
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=06acbaf5-0e47-52f1-df79-5161b6c68424@redhat.com \
--to=hreitz@redhat.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-block@nongnu.org \
--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).