diff mbox series

iotests.py: Wait for postmigrate in wait_migration

Message ID 20191219155137.2431986-1-mreitz@redhat.com (mailing list archive)
State New, archived
Headers show
Series iotests.py: Wait for postmigrate in wait_migration | expand

Commit Message

Max Reitz Dec. 19, 2019, 3:51 p.m. UTC
Without this patch, I see intermittent failures in the new iotest 280
under high system load.  I have not yet seen such failures with other
iotests that use VM.wait_migration() and query-status afterwards, but
maybe they just occur even more rarely.

Signed-off-by: Max Reitz <mreitz@redhat.com>
---
 tests/qemu-iotests/iotests.py | 3 +++
 1 file changed, 3 insertions(+)

Comments

Kevin Wolf Dec. 19, 2019, 4:01 p.m. UTC | #1
Am 19.12.2019 um 16:51 hat Max Reitz geschrieben:
> Without this patch, I see intermittent failures in the new iotest 280
> under high system load.  I have not yet seen such failures with other
> iotests that use VM.wait_migration() and query-status afterwards, but
> maybe they just occur even more rarely.
> 
> Signed-off-by: Max Reitz <mreitz@redhat.com>

Thanks, applied to the block branch.

Kevin
Kevin Wolf Dec. 19, 2019, 5:08 p.m. UTC | #2
Am 19.12.2019 um 17:01 hat Kevin Wolf geschrieben:
> Am 19.12.2019 um 16:51 hat Max Reitz geschrieben:
> > Without this patch, I see intermittent failures in the new iotest 280
> > under high system load.  I have not yet seen such failures with other
> > iotests that use VM.wait_migration() and query-status afterwards, but
> > maybe they just occur even more rarely.
> > 
> > Signed-off-by: Max Reitz <mreitz@redhat.com>
> 
> Thanks, applied to the block branch.

...and unqueuing it again because it makes 234 and 262 hang.

Kevin
diff mbox series

Patch

diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 13fd8b5cd2..4da25c88f5 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -674,6 +674,9 @@  class VM(qtest.QEMUQtestMachine):
             log(event, filters=[filter_qmp_event])
             if event['data']['status'] == 'completed':
                 break
+        # The event may occur in finish-migrate, so wait for postmigrate
+        while self.qmp('query-status')['return']['status'] != 'postmigrate':
+            pass
 
     def node_info(self, node_name):
         nodes = self.qmp('query-named-block-nodes')