[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] iotests: don't run tests requiring cached writes in '-nocach
|
From: |
Andrey Drobyshev |
|
Subject: |
Re: [PATCH] iotests: don't run tests requiring cached writes in '-nocache' mode |
|
Date: |
Fri, 26 Jan 2024 13:04:05 +0200 |
|
User-agent: |
Mozilla Thunderbird |
On 1/26/24 12:24, Kevin Wolf wrote:
> Am 11.12.2023 um 14:32 hat Andrey Drobyshev geschrieben:
>> There're tests whose logic implies running without O_DIRECT set,
>> otherwise they fail when running iotests in '-nocache' mode. For these
>> tests let's add _require_no_o_direct() helper which can be put in the
>> preabmle and which makes sure '-nocache' isn't set. Use it to skip
>> running the following tests:
>>
>> * 271: creates files with unaligned sizes, thus producing multiple
>> errors like:
>>
>> qemu-io: can't open device /path/to/t.qcow2.raw: Cannot get 'write'
>> permission without 'resize': Image size is not a multiple of request
>> alignment
>>
>> * 308, file-io-error: use fuse exports. Though fuse does have
>> 'direct-io' mode (see https://docs.kernel.org/filesystems/fuse-io.html)
>> we aren't using it yet, thus getting errors like:
>>
>> qemu-io: can't open device /path/to/t.qcow2.fuse: Could not open
>> '/path/to/t.qcow2.fuse': filesystem does not support O_DIRECT
>>
>> Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
>
> How are you running qemu-iotests to make these tests fail? I tried to
> reproduce, but they just pass for me:
>
> $ tests/qemu-iotests/check -qcow2 -nocache 271 308 file-io-error
> [...]
> 271 pass [11:20:50] [11:21:11] 21.1s (last: 20.4s)
> 308 pass [11:21:11] [11:21:14] 3.3s (last: 3.3s)
> file-io-error pass [11:21:14] [11:21:14] 0.3s (last: 0.3s)
> Passed all 3 iotests
>
> $ tests/qemu-iotests/check -raw -nocache 271 308 file-io-error
> 271 not run [11:21:20] [11:21:21] ... not
> suitable for this image format: raw
> 308 pass [11:21:21] [11:21:24] 3.8s (last: 2.8s)
> file-io-error pass [11:21:24] [11:21:25] 0.3s (last: 0.3s)
> Not run: 271
> Passed all 2 iotests
>
> Kevin
>
As for the test 271, I imagine this might be caused by different request
alignment. The failure occurs in block.c, bdrv_node_refresh_perm(). If
I print the alignment out explicitly, I get:
qemu-io: can't open device /path/to/t.qcow2.raw: Cannot get 'write'
permission without 'resize': Image size is not a multiple of request
alignment: 4096
For the record, I'm running tests on ext4.
I'm not sure about the fuse tests though. Could it also have smth to do
with the underlying fs?
Andrey