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.drobys...@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

Reply via email to