[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 07/12] iotests: test shutdown when bitmap is exported through NBD
From: |
Kevin Wolf |
Subject: |
[PULL 07/12] iotests: test shutdown when bitmap is exported through NBD |
Date: |
Fri, 17 Jul 2020 14:55:05 +0200 |
From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Test shutdown when bitmap is exported through NBD and active client
exists. The previous patch fixes a crash, provoked by this scenario.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Tested-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20200714162234.13113-3-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
tests/qemu-iotests/299 | 65 ++++++++++++++++++++++++++++++++++++++
tests/qemu-iotests/299.out | 10 ++++++
tests/qemu-iotests/group | 1 +
3 files changed, 76 insertions(+)
create mode 100644 tests/qemu-iotests/299
create mode 100644 tests/qemu-iotests/299.out
diff --git a/tests/qemu-iotests/299 b/tests/qemu-iotests/299
new file mode 100644
index 0000000000..e129c7f7cb
--- /dev/null
+++ b/tests/qemu-iotests/299
@@ -0,0 +1,65 @@
+#!/usr/bin/env python3
+#
+# Test shutdown when bitmap is exported through NBD server
+#
+# Copyright (c) 2020 Virtuozzo International GmbH.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+import iotests
+
+# The test is unrelated to formats, restrict it to qcow2 to avoid extra runs
+iotests.script_initialize(
+ supported_fmts=['qcow2'],
+)
+
+nbd_sock = iotests.file_path('nbd.sock', base_dir=iotests.sock_dir)
+nbd_uri = 'nbd+unix:///disk?socket=' + nbd_sock
+size = 1024 * 1024
+
+vm = iotests.VM()
+vm.launch()
+
+vm.qmp_log('blockdev-add', **{
+ 'node-name': 'disk',
+ 'driver': 'null-co',
+ 'size': 1024 * 1024,
+})
+
+vm.qmp_log('block-dirty-bitmap-add', **{
+ 'node': 'disk',
+ 'name': 'bitmap0'
+})
+
+vm.qmp_log('nbd-server-start', **{
+ 'addr': {
+ 'type': 'unix',
+ 'data': {'path': nbd_sock}
+ }
+}, filters=[iotests.filter_qmp_testfiles])
+
+vm.qmp_log('nbd-server-add', **{
+ 'device': 'disk',
+ 'writable': True,
+ 'bitmap': 'bitmap0'
+})
+
+p = iotests.QemuIoInteractive('-f', 'raw', nbd_uri)
+# wait for connection and check it:
+iotests.log(p.cmd('read 0 512').rstrip(), filters=[iotests.filter_qemu_io])
+
+vm.shutdown()
+
+p.close()
diff --git a/tests/qemu-iotests/299.out b/tests/qemu-iotests/299.out
new file mode 100644
index 0000000000..bba4252923
--- /dev/null
+++ b/tests/qemu-iotests/299.out
@@ -0,0 +1,10 @@
+{"execute": "blockdev-add", "arguments": {"driver": "null-co", "node-name":
"disk", "size": 1048576}}
+{"return": {}}
+{"execute": "block-dirty-bitmap-add", "arguments": {"name": "bitmap0", "node":
"disk"}}
+{"return": {}}
+{"execute": "nbd-server-start", "arguments": {"addr": {"data": {"path":
"SOCK_DIR/PID-nbd.sock"}, "type": "unix"}}}
+{"return": {}}
+{"execute": "nbd-server-add", "arguments": {"bitmap": "bitmap0", "device":
"disk", "writable": true}}
+{"return": {}}
+read 512/512 bytes at offset 0
+512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
index a4f9e11e7a..1d0252e1f0 100644
--- a/tests/qemu-iotests/group
+++ b/tests/qemu-iotests/group
@@ -306,4 +306,5 @@
295 rw
296 rw
297 meta
+299 auto quick
301 backing quick
--
2.25.4
- [PULL 00/12] Block layer patches for 5.1.0-rc1, Kevin Wolf, 2020/07/17
- [PULL 01/12] vvfat: set status to odd fixes, Kevin Wolf, 2020/07/17
- [PULL 03/12] qemu-img resize: Require --shrink for shrinking all image formats, Kevin Wolf, 2020/07/17
- [PULL 05/12] iotests/030: Reduce job speed to make race less likely, Kevin Wolf, 2020/07/17
- [PULL 02/12] Remove VXHS block device, Kevin Wolf, 2020/07/17
- [PULL 06/12] nbd: make nbd_export_close_all() synchronous, Kevin Wolf, 2020/07/17
- [PULL 04/12] crypto: use a stronger private key for tests, Kevin Wolf, 2020/07/17
- [PULL 08/12] block: Require aligned image size to avoid assertion failure, Kevin Wolf, 2020/07/17
- [PULL 09/12] file-posix: Allow byte-aligned O_DIRECT with NFS, Kevin Wolf, 2020/07/17
- [PULL 07/12] iotests: test shutdown when bitmap is exported through NBD,
Kevin Wolf <=
- [PULL 10/12] file-posix: Move check_hdev_writable() up, Kevin Wolf, 2020/07/17
- [PULL 11/12] file-posix: Fix check_hdev_writable() with auto-read-only, Kevin Wolf, 2020/07/17
- [PULL 12/12] file-posix: Fix leaked fd in raw_open_common() error path, Kevin Wolf, 2020/07/17
- Re: [PULL 00/12] Block layer patches for 5.1.0-rc1, Peter Maydell, 2020/07/18