Message ID | 20190627223255.3789-6-mreitz@redhat.com |
---|---|
State | New |
Headers | show |
Series | block: Add BDS.never_freeze | expand |
On 28/06/2019 01:32, Max Reitz wrote: > We recently removed the dependency of the stream job on its base node. > That makes it OK to use a commit filter node there. Test that. > > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > tests/qemu-iotests/030 | 25 +++++++++++++++++++++++++ > tests/qemu-iotests/030.out | 4 ++-- > 2 files changed, 27 insertions(+), 2 deletions(-) > > diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030 > index 10fe1de89d..a0397072bc 100755 > --- a/tests/qemu-iotests/030 > +++ b/tests/qemu-iotests/030 > @@ -363,6 +363,31 @@ class TestParallelOps(iotests.QMPTestCase): > self.wait_until_completed() > self.assert_no_active_block_jobs() > > + # In this case the base node of the stream job is the commit job's > + # filter node. stream does not have a real dependency on its base > + # node, so even though commit removes it when it is done, there is > + # no conflict. > + def test_overlapping_5(self): > + self.assert_no_active_block_jobs() > + > + # Commit from node2 into node0 > + result = self.vm.qmp('block-commit', device='drive0', > + top_node='node2', base_node='node0', > + filter_node_name='commit-filter', speed=1024*1024) > + self.assert_qmp(result, 'return', {}) > + > + # Stream from node2 into node4 > + result = self.vm.qmp('block-stream', device='node4', > + base_node='commit-filter', job_id='node4') > + self.assert_qmp(result, 'return', {}) > + > + result = self.vm.qmp('block-job-set-speed', device='drive0', speed=0) > + self.assert_qmp(result, 'return', {}) > + > + self.vm.run_job(job='drive0', auto_dismiss=True, use_log=False) > + self.vm.run_job(job='node4', auto_dismiss=True, use_log=False) > + self.assert_no_active_block_jobs() > + > # Test a block-stream and a block-commit job in parallel > # Here the stream job is supposed to finish quickly in order to reproduce > # the scenario that triggers the bug fixed in 3d5d319e1221 and 1a63a907507 > diff --git a/tests/qemu-iotests/030.out b/tests/qemu-iotests/030.out > index 4fd1c2dcd2..5eb508de07 100644 > --- a/tests/qemu-iotests/030.out > +++ b/tests/qemu-iotests/030.out > @@ -1,5 +1,5 @@ > -......................... > +.......................... > ---------------------------------------------------------------------- > -Ran 25 tests > +Ran 26 tests > > OK > Tested-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
On Fri 28 Jun 2019 12:32:55 AM CEST, Max Reitz wrote: > We recently removed the dependency of the stream job on its base node. > That makes it OK to use a commit filter node there. Test that. > > Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Alberto Garcia <berto@igalia.com> Berto
diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030 index 10fe1de89d..a0397072bc 100755 --- a/tests/qemu-iotests/030 +++ b/tests/qemu-iotests/030 @@ -363,6 +363,31 @@ class TestParallelOps(iotests.QMPTestCase): self.wait_until_completed() self.assert_no_active_block_jobs() + # In this case the base node of the stream job is the commit job's + # filter node. stream does not have a real dependency on its base + # node, so even though commit removes it when it is done, there is + # no conflict. + def test_overlapping_5(self): + self.assert_no_active_block_jobs() + + # Commit from node2 into node0 + result = self.vm.qmp('block-commit', device='drive0', + top_node='node2', base_node='node0', + filter_node_name='commit-filter', speed=1024*1024) + self.assert_qmp(result, 'return', {}) + + # Stream from node2 into node4 + result = self.vm.qmp('block-stream', device='node4', + base_node='commit-filter', job_id='node4') + self.assert_qmp(result, 'return', {}) + + result = self.vm.qmp('block-job-set-speed', device='drive0', speed=0) + self.assert_qmp(result, 'return', {}) + + self.vm.run_job(job='drive0', auto_dismiss=True, use_log=False) + self.vm.run_job(job='node4', auto_dismiss=True, use_log=False) + self.assert_no_active_block_jobs() + # Test a block-stream and a block-commit job in parallel # Here the stream job is supposed to finish quickly in order to reproduce # the scenario that triggers the bug fixed in 3d5d319e1221 and 1a63a907507 diff --git a/tests/qemu-iotests/030.out b/tests/qemu-iotests/030.out index 4fd1c2dcd2..5eb508de07 100644 --- a/tests/qemu-iotests/030.out +++ b/tests/qemu-iotests/030.out @@ -1,5 +1,5 @@ -......................... +.......................... ---------------------------------------------------------------------- -Ran 25 tests +Ran 26 tests OK
We recently removed the dependency of the stream job on its base node. That makes it OK to use a commit filter node there. Test that. Signed-off-by: Max Reitz <mreitz@redhat.com> --- tests/qemu-iotests/030 | 25 +++++++++++++++++++++++++ tests/qemu-iotests/030.out | 4 ++-- 2 files changed, 27 insertions(+), 2 deletions(-)