[Qemu-devel] [PATCH for-4.0?] iotest: Fix 241 to run in generic directory

Eric Blake posted 1 patch 5 years ago
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test checkpatch passed
Test asan passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190410204215.5963-1-eblake@redhat.com
Maintainers: Kevin Wolf <kwolf@redhat.com>, Max Reitz <mreitz@redhat.com>
tests/qemu-iotests/241     | 4 +++-
tests/qemu-iotests/241.out | 6 +++---
2 files changed, 6 insertions(+), 4 deletions(-)
[Qemu-devel] [PATCH for-4.0?] iotest: Fix 241 to run in generic directory
Posted by Eric Blake 5 years ago
Filter the qemu-nbd server output to get rid of a direct reference
to my build directory.

Fixes: e9dce9cb
Reported-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
---

Not worth -rc4 on its own, but if something else pops up that requires
another spin, I plan on a pull request for this one. Otherwise it
slips to 4.1, and 4.0 just has a broken iotest.

 tests/qemu-iotests/241     | 4 +++-
 tests/qemu-iotests/241.out | 6 +++---
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/tests/qemu-iotests/241 b/tests/qemu-iotests/241
index 4b196857387..017a736aaba 100755
--- a/tests/qemu-iotests/241
+++ b/tests/qemu-iotests/241
@@ -28,6 +28,7 @@ nbd_unix_socket=$TEST_DIR/test_qemu_nbd_socket
 _cleanup()
 {
     _cleanup_test_img
+    rm -f "$TEST_DIR/server.log"
     nbd_server_stop
 }
 trap "_cleanup; exit \$status" 0 1 2 3 15
@@ -69,12 +70,13 @@ echo

 # Intentionally omit '-f' to force image probing, which in turn forces
 # sector alignment, here at the server.
-nbd_server_start_unix_socket "$TEST_IMG_FILE"
+nbd_server_start_unix_socket "$TEST_IMG_FILE" 2> "$TEST_DIR/server.log"

 $QEMU_NBD_PROG --list -k $nbd_unix_socket | grep '\(size\|min\)'
 $QEMU_IMG map -f raw --output=json "$TEST_IMG" | _filter_qemu_img_map
 $QEMU_IO -f raw -c map "$TEST_IMG"
 nbd_server_stop
+cat "$TEST_DIR/server.log" | _filter_testdir

 echo
 echo "=== Exporting unaligned raw image, forced client sector alignment ==="
diff --git a/tests/qemu-iotests/241.out b/tests/qemu-iotests/241.out
index f481074a02e..75f9f465e52 100644
--- a/tests/qemu-iotests/241.out
+++ b/tests/qemu-iotests/241.out
@@ -10,13 +10,13 @@ QA output created by 241

 === Exporting unaligned raw image, forced server sector alignment ===

-WARNING: Image format was not specified for '/home/eblake/qemu/tests/qemu-iotests/scratch/t.raw' and probing guessed raw.
-         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
-         Specify the 'raw' format explicitly to remove the restrictions.
   size:  1024
   min block: 512
 [{ "start": 0, "length": 1024, "depth": 0, "zero": false, "data": true, "offset": OFFSET}]
 1 KiB (0x400) bytes     allocated at offset 0 bytes (0x0)
+WARNING: Image format was not specified for 'TEST_DIR/t.raw' and probing guessed raw.
+         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
+         Specify the 'raw' format explicitly to remove the restrictions.

 === Exporting unaligned raw image, forced client sector alignment ===

-- 
2.20.1


Re: [Qemu-devel] [PATCH for-4.0?] iotest: Fix 241 to run in generic directory
Posted by Kevin Wolf 5 years ago
Am 10.04.2019 um 22:42 hat Eric Blake geschrieben:
> Filter the qemu-nbd server output to get rid of a direct reference
> to my build directory.
> 
> Fixes: e9dce9cb
> Reported-by: Max Reitz <mreitz@redhat.com>
> Signed-off-by: Eric Blake <eblake@redhat.com>

Thanks, applied to the block branch.

Kevin

Re: [Qemu-devel] [PATCH for-4.0?] iotest: Fix 241 to run in generic directory
Posted by Vladimir Sementsov-Ogievskiy 5 years ago
10.04.2019 23:42, Eric Blake wrote:
> Filter the qemu-nbd server output to get rid of a direct reference
> to my build directory.
> 
> Fixes: e9dce9cb
> Reported-by: Max Reitz <mreitz@redhat.com>
> Signed-off-by: Eric Blake <eblake@redhat.com>
> ---
> 
> Not worth -rc4 on its own, but if something else pops up that requires
> another spin, I plan on a pull request for this one. Otherwise it
> slips to 4.1, and 4.0 just has a broken iotest.
> 
>   tests/qemu-iotests/241     | 4 +++-
>   tests/qemu-iotests/241.out | 6 +++---
>   2 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/qemu-iotests/241 b/tests/qemu-iotests/241
> index 4b196857387..017a736aaba 100755
> --- a/tests/qemu-iotests/241
> +++ b/tests/qemu-iotests/241
> @@ -28,6 +28,7 @@ nbd_unix_socket=$TEST_DIR/test_qemu_nbd_socket
>   _cleanup()
>   {
>       _cleanup_test_img
> +    rm -f "$TEST_DIR/server.log"
>       nbd_server_stop
>   }
>   trap "_cleanup; exit \$status" 0 1 2 3 15
> @@ -69,12 +70,13 @@ echo
> 
>   # Intentionally omit '-f' to force image probing, which in turn forces
>   # sector alignment, here at the server.
> -nbd_server_start_unix_socket "$TEST_IMG_FILE"
> +nbd_server_start_unix_socket "$TEST_IMG_FILE" 2> "$TEST_DIR/server.log"
> 
>   $QEMU_NBD_PROG --list -k $nbd_unix_socket | grep '\(size\|min\)'
>   $QEMU_IMG map -f raw --output=json "$TEST_IMG" | _filter_qemu_img_map
>   $QEMU_IO -f raw -c map "$TEST_IMG"
>   nbd_server_stop
> +cat "$TEST_DIR/server.log" | _filter_testdir
> 
>   echo
>   echo "=== Exporting unaligned raw image, forced client sector alignment ==="
> diff --git a/tests/qemu-iotests/241.out b/tests/qemu-iotests/241.out
> index f481074a02e..75f9f465e52 100644
> --- a/tests/qemu-iotests/241.out
> +++ b/tests/qemu-iotests/241.out
> @@ -10,13 +10,13 @@ QA output created by 241
> 
>   === Exporting unaligned raw image, forced server sector alignment ===
> 
> -WARNING: Image format was not specified for '/home/eblake/qemu/tests/qemu-iotests/scratch/t.raw' and probing guessed raw.
> -         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
> -         Specify the 'raw' format explicitly to remove the restrictions.
>     size:  1024
>     min block: 512
>   [{ "start": 0, "length": 1024, "depth": 0, "zero": false, "data": true, "offset": OFFSET}]
>   1 KiB (0x400) bytes     allocated at offset 0 bytes (0x0)
> +WARNING: Image format was not specified for 'TEST_DIR/t.raw' and probing guessed raw.
> +         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
> +         Specify the 'raw' format explicitly to remove the restrictions.

May be, just add -f raw to nbd server, to make this message disappear? And than, don't do any redirections, as if there
will be failed unfiltered output it is OK?

> 
>   === Exporting unaligned raw image, forced client sector alignment ===
> 


-- 
Best regards,
Vladimir
Re: [Qemu-devel] [PATCH for-4.0?] iotest: Fix 241 to run in generic directory
Posted by Eric Blake 5 years ago
On 4/11/19 2:57 AM, Vladimir Sementsov-Ogievskiy wrote:
> 10.04.2019 23:42, Eric Blake wrote:
>> Filter the qemu-nbd server output to get rid of a direct reference
>> to my build directory.
>>
>> Fixes: e9dce9cb
>> Reported-by: Max Reitz <mreitz@redhat.com>
>> Signed-off-by: Eric Blake <eblake@redhat.com>
>> ---
>>
>> Not worth -rc4 on its own, but if something else pops up that requires
>> another spin, I plan on a pull request for this one. Otherwise it
>> slips to 4.1, and 4.0 just has a broken iotest.
>>

>> @@ -69,12 +70,13 @@ echo
>>
>>   # Intentionally omit '-f' to force image probing, which in turn forces
>>   # sector alignment, here at the server.
>> -nbd_server_start_unix_socket "$TEST_IMG_FILE"
>> +nbd_server_start_unix_socket "$TEST_IMG_FILE" 2> "$TEST_DIR/server.log"
>>

>>   1 KiB (0x400) bytes     allocated at offset 0 bytes (0x0)
>> +WARNING: Image format was not specified for 'TEST_DIR/t.raw' and probing guessed raw.
>> +         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
>> +         Specify the 'raw' format explicitly to remove the restrictions.
> 
> May be, just add -f raw to nbd server, to make this message disappear? And than, don't do any redirections, as if there
> will be failed unfiltered output it is OK?

No. See the comment in the test - it is intentional that we are omitting
-f, in two different places, in order to get three test scenarios:

normal: server '-f raw' 1-byte align, client '-f raw' 1-byte align
server-constrained: server omit for 512-byte align, client '-f raw'
obeys server align
client-constrained: server '-f raw' 1-byte align, client omit for
intentional 512-byte align

in order to show both that the server with forced alignment is able to
round requests correctly before sending to the client, and to show that
the client with forced alignment is able to round requests correctly in
spite of the server sending answers narrower than the client wants.

In 4.1, when Max's filter handling patches land, it will be possible to
use the blkdebug driver to force alignment instead of omitting '-f raw';
at which point we can take away the server.log file. But until the
filter handling patches land, any use of blkdebug causes odd test
misbehaviors because not everything in the block layer properly sees
through filter nodes.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org

Re: [Qemu-devel] [PATCH for-4.0?] iotest: Fix 241 to run in generic directory
Posted by Vladimir Sementsov-Ogievskiy 5 years ago
11.04.2019 17:47, Eric Blake wrote:
> On 4/11/19 2:57 AM, Vladimir Sementsov-Ogievskiy wrote:
>> 10.04.2019 23:42, Eric Blake wrote:
>>> Filter the qemu-nbd server output to get rid of a direct reference
>>> to my build directory.
>>>
>>> Fixes: e9dce9cb
>>> Reported-by: Max Reitz <mreitz@redhat.com>
>>> Signed-off-by: Eric Blake <eblake@redhat.com>
>>> ---
>>>
>>> Not worth -rc4 on its own, but if something else pops up that requires
>>> another spin, I plan on a pull request for this one. Otherwise it
>>> slips to 4.1, and 4.0 just has a broken iotest.
>>>
> 
>>> @@ -69,12 +70,13 @@ echo
>>>
>>>    # Intentionally omit '-f' to force image probing, which in turn forces
>>>    # sector alignment, here at the server.
>>> -nbd_server_start_unix_socket "$TEST_IMG_FILE"
>>> +nbd_server_start_unix_socket "$TEST_IMG_FILE" 2> "$TEST_DIR/server.log"
>>>
> 
>>>    1 KiB (0x400) bytes     allocated at offset 0 bytes (0x0)
>>> +WARNING: Image format was not specified for 'TEST_DIR/t.raw' and probing guessed raw.
>>> +         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
>>> +         Specify the 'raw' format explicitly to remove the restrictions.
>>
>> May be, just add -f raw to nbd server, to make this message disappear? And than, don't do any redirections, as if there
>> will be failed unfiltered output it is OK?
> 
> No. See the comment in the test - it is intentional that we are omitting
> -f, in two different places, in order to get three test scenarios:
> 
> normal: server '-f raw' 1-byte align, client '-f raw' 1-byte align
> server-constrained: server omit for 512-byte align, client '-f raw'
> obeys server align
> client-constrained: server '-f raw' 1-byte align, client omit for
> intentional 512-byte align
> 
> in order to show both that the server with forced alignment is able to
> round requests correctly before sending to the client, and to show that
> the client with forced alignment is able to round requests correctly in
> spite of the server sending answers narrower than the client wants.
> 
> In 4.1, when Max's filter handling patches land, it will be possible to
> use the blkdebug driver to force alignment instead of omitting '-f raw';
> at which point we can take away the server.log file. But until the
> filter handling patches land, any use of blkdebug causes odd test
> misbehaviors because not everything in the block layer properly sees
> through filter nodes.
> 

Understand now, thanks.

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

-- 
Best regards,
Vladimir