This would fail without commit 9ac85f4cc7 ("block/mirror: fix
assertion failure upon duplicate complete for job using 'replaces'").
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
---
No changes in v3.
tests/qemu-iotests/041 | 31 +++++++++++++++++++++++++++++++
tests/qemu-iotests/041.out | 4 ++--
2 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/tests/qemu-iotests/041 b/tests/qemu-iotests/041
index 976a12a6f2..17b415aebf 100755
--- a/tests/qemu-iotests/041
+++ b/tests/qemu-iotests/041
@@ -1520,6 +1520,37 @@ class TestThrottledNBDTarget(iotests.QMPTestCase):
self.assertTrue(iotests.compare_images(test_img, target_img),
'target image does not match source after mirroring')
+ def test_duplicate_complete_with_replaces(self):
+ self.vm.cmd('blockdev-mirror',
+ job_id='mirror',
+ device='source',
+ target='target',
+ replaces='source',
+ sync='full')
+
+ self.wait_ready(drive='mirror')
+
+ self.set_throttle_limits({'iops-write': 1})
+
+ # Issue requests that will be throttled.
+ for i in range(0, self.reqs):
+ req = f'aio_write -P 7 {i}M {self.req_len}'
+ self.vm.hmp_qemu_io(self.drive_qdev, req, qdev=True)
+
+ self.vm.cmd('job-complete', id='mirror')
+ # The fact that the target is externally throttled ensures that the job
+ # won't be finished yet when the second command is issued.
+ self.vm.cmd('job-complete', id='mirror')
+
+ self.disable_throttling()
+
+ self.wait_until_completed('mirror')
+
+ self.target_vm.shutdown()
+ self.vm.shutdown()
+ self.assertTrue(iotests.compare_images(test_img, target_img),
+ 'target image does not match source after mirroring')
+
if __name__ == '__main__':
iotests.main(supported_fmts=['qcow2', 'qed'],
supported_protocols=['file'],
diff --git a/tests/qemu-iotests/041.out b/tests/qemu-iotests/041.out
index 5273ce86c3..96a0752f44 100644
--- a/tests/qemu-iotests/041.out
+++ b/tests/qemu-iotests/041.out
@@ -1,5 +1,5 @@
-............................................................................................................
+.............................................................................................................
----------------------------------------------------------------------
-Ran 108 tests
+Ran 109 tests
OK
--
2.47.3