From: Max Reitz <mreitz@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
qemu-block@nongnu.org
Cc: fam@euphon.net, kwolf@redhat.com, qemu-devel@nongnu.org,
armbru@redhat.com, stefanha@redhat.com, den@openvz.org
Subject: Re: [PATCH v6 11/15] iotests: add 298 to test new preallocate filter driver
Date: Fri, 25 Sep 2020 11:11:44 +0200 [thread overview]
Message-ID: <d36a27c8-0f2c-ede5-6f97-e134093dcf6e@redhat.com> (raw)
In-Reply-To: <33d1a996-f212-eac7-ab78-659a4025c069@virtuozzo.com>
[-- Attachment #1.1: Type: text/plain, Size: 7071 bytes --]
On 25.09.20 10:49, Vladimir Sementsov-Ogievskiy wrote:
> 25.09.2020 11:26, Max Reitz wrote:
>> On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
>>> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
>>> ---
>>> tests/qemu-iotests/298 | 186 +++++++++++++++++++++++++++++++++++++
>>> tests/qemu-iotests/298.out | 5 +
>>> tests/qemu-iotests/group | 1 +
>>> 3 files changed, 192 insertions(+)
>>> create mode 100644 tests/qemu-iotests/298
>>> create mode 100644 tests/qemu-iotests/298.out
[...]
>>> +class TestTruncate(iotests.QMPTestCase):
>>
>> The same decorator could be placed here, although this class doesn’t
>> start a VM, and so is unaffected by the allowlist. Still may be
>> relevant in case of block modules, I don’t know.
>
> Or just global test skip at file top
Hm. Like verify_quorum()? Is there a generic function for that already?
[...]
>>> + # Probably we'll want preallocate filter to keep align to
>>> cluster when
>>> + # shrink preallocation, so, ignore small differece
>>> + self.assertLess(abs(stat.st_size - refstat.st_size), 64 * 1024)
>>> +
>>> + # Preallocate filter may leak some internal clusters (for
>>> example, if
>>> + # guest write far over EOF, skipping some clusters - they
>>> will remain
>>> + # fallocated, preallocate filter don't care about such
>>> leaks, it drops
>>> + # only trailing preallocation.
>>
>> True, but that isn’t what’s happening here. (We only write 10M at 0, so
>> there are no gaps.) Why do we need this 1M margin?
>
> We write 10M, but qcow2 also writes metadata as it wants
Ah, yes, sure. Shouldn’t result in 1M, but why not.
>>> + self.assertLess(abs(stat.st_blocks - refstat.st_blocks) * 512,
>>> + 1024 * 1024)
>>
>> [...]
>>
>>> diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
>>> index ff59cfd2d4..15d5f9619b 100644
>>> --- a/tests/qemu-iotests/group
>>> +++ b/tests/qemu-iotests/group
>>> @@ -307,6 +307,7 @@
>>> 295 rw
>>> 296 rw
>>> 297 meta
>>> +298 auto quick
>>
>> I wouldn’t mark it as quick, there is at least one preallocate=full of
>> 140M, and one of 40M, plus multiple 10M data writes and falloc
>> preallocations.
>>
>> Also, since you mark it as “auto”, have you run this test on all
>> CI-relevant hosts? (Among other things I can’t predict) I wonder how
>> preallocation behaves on macOS. Just because that one was always a bit
>> weird about not-really-data areas.
>>
>
> Ofcourse, I didn't run on all hosts. I'm a bit out of sync about this..
Well, someone has to do it. The background story is that tests are
added to auto all the time (because “why not”), and then they fail on
BSD or macOS. We have BSD docker test build targets at least, so they
can be easily tested. (Well, it takes like half an hour, but you know.)
(We don’t have macOS builds, as far as I can tell, but I personally
don’t even know why we run the iotests on macOS at all. (Well, I also
wonder about the BSDs, but given the test build targets, I shouldn’t
complain, I suppose.))
(Though macOS isn’t part of the gating CI, is it? I seem to remember
macOS errors are generally only reported to me half a week after the
pull request is merged, which is even worse.)
Anyway. I just ran the test for OpenBSD
(EXTRA_CONFIGURE_OPTS='--target-list=x86_64-softmmu' \
make vm-build-openbsd)
and got some failures:
--- /home/qemu/qemu-test.PGo2ls/src/tests/qemu-iotests/298.out Fri Sep
25 07:10:31 2020
+++ /home/qemu/qemu-test.PGo2ls/build/tests/qemu-iotests/298.out.bad
Fri Sep 25 08:57:56 2020
@@ -1,5 +1,67 @@
-.............
+qemu-io: Failed to resize underlying file: Unsupported preallocation
mode: falloc
+qemu-io: Failed to resize underlying file: Unsupported preallocation
mode: falloc
+FFFF.F...F...
+======================================================================
+FAIL: test_external_snapshot (__main__.TestPreallocateFilter)
----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "298", line 81, in test_external_snapshot
+ self.test_prealloc()
+ File "298", line 78, in test_prealloc
+ self.check_big()
+ File "298", line 48, in check_big
+ self.assertTrue(os.path.getsize(disk) > 100 * MiB)
+AssertionError: False is not true
+
+======================================================================
+FAIL: test_prealloc (__main__.TestPreallocateFilter)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "298", line 78, in test_prealloc
+ self.check_big()
+ File "298", line 48, in check_big
+ self.assertTrue(os.path.getsize(disk) > 100 * MiB)
+AssertionError: False is not true
+
+======================================================================
+FAIL: test_reopen_opts (__main__.TestPreallocateFilter)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "298", line 119, in test_reopen_opts
+ self.assertTrue(os.path.getsize(disk) == 25 * MiB)
+AssertionError: False is not true
+
+======================================================================
+FAIL: test_qemu_img (__main__.TestQemuImg)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "298", line 61, in test_qemu_img
+ self.check_big()
+ File "298", line 48, in check_big
+ self.assertTrue(os.path.getsize(disk) > 100 * MiB)
+AssertionError: False is not true
+
+======================================================================
+FAIL: test_truncate_inside_preallocated_area__falloc
(__main__.TestTruncate)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "298", line 161, in test_truncate_inside_preallocated_area__falloc
+ self.do_test('falloc', '50M')
+ File "298", line 135, in do_test
+ self.assertEqual(ret, 0)
+AssertionError: 1 != 0
+
+======================================================================
+FAIL: test_truncate_over_preallocated_area__falloc (__main__.TestTruncate)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "298", line 173, in test_truncate_over_preallocated_area__falloc
+ self.do_test('falloc', '150M')
+ File "298", line 135, in do_test
+ self.assertEqual(ret, 0)
+AssertionError: 1 != 0
+
+----------------------------------------------------------------------
Ran 13 tests
-OK
+FAILED (failures=6)
> If I don't put new test in "auto", is there any chance that test would
> be automatically run somewhere?
I run all tests before pull requests at least.
Max
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2020-09-25 9:13 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-18 18:19 [PATCH v6 00/15] preallocate filter Vladimir Sementsov-Ogievskiy
2020-09-18 18:19 ` [PATCH v6 01/15] block: simplify comment to BDRV_REQ_SERIALISING Vladimir Sementsov-Ogievskiy
2020-09-28 15:34 ` Alberto Garcia
2020-09-18 18:19 ` [PATCH v6 02/15] block/io.c: drop assertion on double waiting for request serialisation Vladimir Sementsov-Ogievskiy
2020-09-18 18:19 ` [PATCH v6 03/15] block/io: split out bdrv_find_conflicting_request Vladimir Sementsov-Ogievskiy
2020-09-18 18:19 ` [PATCH v6 04/15] block/io: bdrv_wait_serialising_requests_locked: drop extra bs arg Vladimir Sementsov-Ogievskiy
2020-09-18 18:19 ` [PATCH v6 05/15] block: bdrv_mark_request_serialising: split non-waiting function Vladimir Sementsov-Ogievskiy
2020-09-18 18:19 ` [PATCH v6 06/15] block: introduce BDRV_REQ_NO_WAIT flag Vladimir Sementsov-Ogievskiy
2020-09-18 18:19 ` [PATCH v6 07/15] block: bdrv_check_perm(): process children anyway Vladimir Sementsov-Ogievskiy
2020-09-24 14:25 ` Max Reitz
2020-09-24 14:55 ` Vladimir Sementsov-Ogievskiy
2020-09-18 18:19 ` [PATCH v6 08/15] block: introduce preallocate filter Vladimir Sementsov-Ogievskiy
2020-09-24 16:50 ` Max Reitz
2020-09-24 17:36 ` Vladimir Sementsov-Ogievskiy
2020-09-18 18:19 ` [PATCH v6 09/15] qemu-io: add preallocate mode parameter for truncate command Vladimir Sementsov-Ogievskiy
2020-09-24 17:08 ` Max Reitz
2020-09-18 18:19 ` [PATCH v6 10/15] iotests: qemu_io_silent: support --image-opts Vladimir Sementsov-Ogievskiy
2020-09-25 7:10 ` Max Reitz
2020-09-18 18:19 ` [PATCH v6 11/15] iotests: add 298 to test new preallocate filter driver Vladimir Sementsov-Ogievskiy
2020-09-25 8:26 ` Max Reitz
2020-09-25 8:49 ` Vladimir Sementsov-Ogievskiy
2020-09-25 9:11 ` Max Reitz [this message]
2020-09-25 15:11 ` Vladimir Sementsov-Ogievskiy
2020-09-25 15:32 ` Vladimir Sementsov-Ogievskiy
2020-10-01 7:40 ` Max Reitz
2020-10-01 8:41 ` Thomas Huth
2020-09-18 18:19 ` [PATCH v6 12/15] scripts/simplebench: support iops Vladimir Sementsov-Ogievskiy
2020-09-25 8:54 ` Max Reitz
2020-09-18 18:19 ` [PATCH v6 13/15] scripts/simplebench: improve view of ascii table Vladimir Sementsov-Ogievskiy
2020-09-25 9:31 ` Max Reitz
2020-09-25 16:58 ` Vladimir Sementsov-Ogievskiy
2020-09-18 18:19 ` [PATCH v6 14/15] scripts/simplebench: improve ascii table: add difference line Vladimir Sementsov-Ogievskiy
2020-09-25 10:24 ` Max Reitz
2020-09-25 17:13 ` Vladimir Sementsov-Ogievskiy
2020-10-01 8:22 ` Max Reitz
2020-09-18 18:19 ` [PATCH v6 15/15] scripts/simplebench: add bench_prealloc.py Vladimir Sementsov-Ogievskiy
2020-09-25 11:25 ` Max Reitz
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=d36a27c8-0f2c-ede5-6f97-e134093dcf6e@redhat.com \
--to=mreitz@redhat.com \
--cc=armbru@redhat.com \
--cc=den@openvz.org \
--cc=fam@euphon.net \
--cc=kwolf@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--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).