[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 10/10] iotests/030: Unthrottle parallel jobs in reverse
From: |
Hanna Reitz |
Subject: |
[PATCH v2 10/10] iotests/030: Unthrottle parallel jobs in reverse |
Date: |
Thu, 11 Nov 2021 13:08:29 +0100 |
See the comment for why this is necessary.
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
---
tests/qemu-iotests/030 | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030
index 5fb65b4bef..567bf1da67 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', {})
--
2.33.1
- [PATCH v2 04/10] block: Drop detached child from ignore list, (continued)
- [PATCH v2 04/10] block: Drop detached child from ignore list, Hanna Reitz, 2021/11/11
- [PATCH v2 03/10] block: Unite remove_empty_child and child_free, Hanna Reitz, 2021/11/11
- [PATCH v2 05/10] block: Pass BdrvChild ** to replace_child_noperm, Hanna Reitz, 2021/11/11
- [PATCH v2 06/10] block: Restructure remove_file_or_backing_child(), Hanna Reitz, 2021/11/11
- [PATCH v2 08/10] block: Let replace_child_tran keep indirect pointer, Hanna Reitz, 2021/11/11
- [PATCH v2 07/10] transactions: Invoke clean() after everything else, Hanna Reitz, 2021/11/11
- [PATCH v2 10/10] iotests/030: Unthrottle parallel jobs in reverse,
Hanna Reitz <=
- [PATCH v2 09/10] block: Let replace_child_noperm free children, Hanna Reitz, 2021/11/11
Re: [PATCH v2 00/10] block: Attempt on fixing 030-reported errors, Kevin Wolf, 2021/11/11