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>
This commit is contained in:
parent
b0a9f6fed3
commit
16e29cc050
@ -251,7 +251,16 @@ class TestParallelOps(iotests.QMPTestCase):
|
|||||||
speed=1024)
|
speed=1024)
|
||||||
self.assert_qmp(result, 'return', {})
|
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)
|
result = self.vm.qmp('block-job-set-speed', device=job, speed=0)
|
||||||
self.assert_qmp(result, 'return', {})
|
self.assert_qmp(result, 'return', {})
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user