[Qemu-devel] [PATCH] iotests: Fix another race in 030

John Snow posted 1 patch 7 years, 2 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170216220000.1004-1-jsnow@redhat.com
Test checkpatch passed
Test docker passed
Test s390x passed
tests/qemu-iotests/030 | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[Qemu-devel] [PATCH] iotests: Fix another race in 030
Posted by John Snow 7 years, 2 months ago
We can't rely on a non-paused job to be present and running for us.
Assume that if the job is not present that it completed already.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 tests/qemu-iotests/030 | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030
index 54db54a..0d472d5 100755
--- a/tests/qemu-iotests/030
+++ b/tests/qemu-iotests/030
@@ -547,11 +547,14 @@ class TestEIO(TestErrors):
         while not completed:
             for event in self.vm.get_qmp_events(wait=True):
                 if event['event'] == 'BLOCK_JOB_ERROR':
+                    error = True
                     self.assert_qmp(event, 'data/device', 'drive0')
                     self.assert_qmp(event, 'data/operation', 'read')
                     result = self.vm.qmp('query-block-jobs')
+                    if result == {'return': []}:
+                        # Job finished too quickly
+                        continue
                     self.assert_qmp(result, 'return[0]/paused', False)
-                    error = True
                 elif event['event'] == 'BLOCK_JOB_COMPLETED':
                     self.assertTrue(error, 'job completed unexpectedly')
                     self.assert_qmp(event, 'data/type', 'stream')
-- 
2.9.3


Re: [Qemu-devel] [PATCH] iotests: Fix another race in 030
Posted by Fam Zheng 7 years, 2 months ago
On Thu, 02/16 17:00, John Snow wrote:
> We can't rely on a non-paused job to be present and running for us.
> Assume that if the job is not present that it completed already.
> 
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  tests/qemu-iotests/030 | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030
> index 54db54a..0d472d5 100755
> --- a/tests/qemu-iotests/030
> +++ b/tests/qemu-iotests/030
> @@ -547,11 +547,14 @@ class TestEIO(TestErrors):
>          while not completed:
>              for event in self.vm.get_qmp_events(wait=True):
>                  if event['event'] == 'BLOCK_JOB_ERROR':
> +                    error = True
>                      self.assert_qmp(event, 'data/device', 'drive0')
>                      self.assert_qmp(event, 'data/operation', 'read')
>                      result = self.vm.qmp('query-block-jobs')
> +                    if result == {'return': []}:
> +                        # Job finished too quickly
> +                        continue
>                      self.assert_qmp(result, 'return[0]/paused', False)
> -                    error = True
>                  elif event['event'] == 'BLOCK_JOB_COMPLETED':
>                      self.assertTrue(error, 'job completed unexpectedly')
>                      self.assert_qmp(event, 'data/type', 'stream')
> -- 
> 2.9.3
> 
> 

Looks fine.

Reviewed-by: Fam Zheng <famz@redhat.com>

Re: [Qemu-devel] [Qemu-block] [PATCH] iotests: Fix another race in 030
Posted by Kevin Wolf 7 years, 1 month ago
Am 16.02.2017 um 23:00 hat John Snow geschrieben:
> We can't rely on a non-paused job to be present and running for us.
> Assume that if the job is not present that it completed already.
> 
> Signed-off-by: John Snow <jsnow@redhat.com>

Thanks, applied to the block branch.

Kevin