aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorHanna Reitz <hreitz@redhat.com>2021-11-15 15:54:06 +0100
committerHanna Reitz <hreitz@redhat.com>2021-11-16 09:43:48 +0100
commit16e29cc050516ac0915f0db9226079b17dcbcc51 (patch)
treee6e17315870d75b9f84456f44b46163ffd18c175 /tests
parentb0a9f6fed3d80de610dcd04a7e66f9f30a04174f (diff)
downloadqemu-16e29cc050516ac0915f0db9226079b17dcbcc51.zip
qemu-16e29cc050516ac0915f0db9226079b17dcbcc51.tar.gz
qemu-16e29cc050516ac0915f0db9226079b17dcbcc51.tar.bz2
iotests/030: Unthrottle parallel jobs in reverse
See the comment for why this is necessary. Signed-off-by: Hanna Reitz <hreitz@redhat.com> Message-Id: <20211111120829.81329-11-hreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20211115145409.176785-11-kwolf@redhat.com> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Diffstat (limited to 'tests')
-rwxr-xr-xtests/qemu-iotests/03011
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030
index 5fb65b4..567bf1d 100755
--- a/tests/qemu-iotests/030
+++ b/tests/qemu-iotests/030
@@ -251,7 +251,16 @@ class TestParallelOps(iotests.QMPTestCase):
speed=1024)
self.assert_qmp(result, 'return', {})
- for job in pending_jobs:
+ # Do this in reverse: After unthrottling them, some jobs may finish
+ # before we have unthrottled all of them. This will drain their
+ # subgraph, and this will make jobs above them advance (despite those
+ # jobs on top being throttled). In the worst case, all jobs below the
+ # top one are finished before we can unthrottle it, and this makes it
+ # advance so far that it completes before we can unthrottle it - which
+ # results in an error.
+ # Starting from the top (i.e. in reverse) does not have this problem:
+ # When a job finishes, the ones below it are not advanced.
+ for job in reversed(pending_jobs):
result = self.vm.qmp('block-job-set-speed', device=job, speed=0)
self.assert_qmp(result, 'return', {})