[PATCH v4 0/9] block: Fix resize (extending) of short overlays

Kevin Wolf posted 9 patches 4 years ago
Test docker-mingw@fedora failed
Test docker-quick@centos7 passed
Test checkpatch passed
Test FreeBSD passed
Test asan passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200420133214.28921-1-kwolf@redhat.com
Maintainers: Jeff Cody <codyprime@gmail.com>, Ronnie Sahlberg <ronniesahlberg@gmail.com>, Fam Zheng <fam@euphon.net>, Jason Dillaman <dillaman@redhat.com>, John Snow <jsnow@redhat.com>, Markus Armbruster <armbru@redhat.com>, "Denis V. Lunev" <den@openvz.org>, Stefan Hajnoczi <stefanha@redhat.com>, Liu Yuan <namei.unix@gmail.com>, "Richard W.M. Jones" <rjones@redhat.com>, Max Reitz <mreitz@redhat.com>, Stefan Weil <sw@weilnetz.de>, Peter Lieven <pl@kamp.de>, Paolo Bonzini <pbonzini@redhat.com>, Kevin Wolf <kwolf@redhat.com>
There is a newer version of this series
include/block/block.h          |   5 +-
include/block/block_int.h      |  10 +-
include/sysemu/block-backend.h |   2 +-
block.c                        |   3 +-
block/block-backend.c          |   4 +-
block/commit.c                 |   4 +-
block/crypto.c                 |   7 +-
block/file-posix.c             |   6 +-
block/gluster.c                |   1 +
block/io.c                     |  32 +++++-
block/iscsi.c                  |   2 +-
block/mirror.c                 |   2 +-
block/nfs.c                    |   3 +-
block/parallels.c              |   6 +-
block/qcow.c                   |   4 +-
block/qcow2-refcount.c         |   2 +-
block/qcow2.c                  |  28 +++--
block/qed.c                    |   3 +-
block/raw-format.c             |   5 +-
block/rbd.c                    |   1 +
block/sheepdog.c               |   4 +-
block/ssh.c                    |   2 +-
block/vdi.c                    |   2 +-
block/vhdx-log.c               |   2 +-
block/vhdx.c                   |   6 +-
block/vmdk.c                   |   8 +-
block/vpc.c                    |   2 +-
blockdev.c                     |   2 +-
qemu-img.c                     |   2 +-
qemu-io-cmds.c                 |   2 +-
tests/test-block-iothread.c    |   9 +-
tests/qemu-iotests/iotests.py  |   5 +-
tests/qemu-iotests/206.out     |  12 +-
tests/qemu-iotests/242.out     |  12 +-
tests/qemu-iotests/274         | 152 +++++++++++++++++++++++++
tests/qemu-iotests/274.out     | 202 +++++++++++++++++++++++++++++++++
tests/qemu-iotests/group       |   1 +
37 files changed, 483 insertions(+), 72 deletions(-)
create mode 100755 tests/qemu-iotests/274
create mode 100644 tests/qemu-iotests/274.out
[PATCH v4 0/9] block: Fix resize (extending) of short overlays
Posted by Kevin Wolf 4 years ago
v4:
- Rewrote the series to move the actual zeroing to the block drivers so
  that error paths can work correctly and potentially long-running
  fallback to writing explicit zeroes is avoided.
- Fixed output filtering order in the test case [Max]

v3:
- Don't allow blocking the monitor for a zero write in block_resize
  (even though we can already blockfor other reasons there). This is
  mainly responsible for the increased complexity compared to v2.
  Personally, I think this is not an improvement over v2, but if this is
  what it takes to fix a corruption issue in 4.2... [Max]
- Don't use huge image files in the test case [Vladimir]

v2:
- Switched order of bs->total_sectors update and zero write [Vladimir]
- Fixed coding style [Vladimir]
- Changed the commit message to contain what was in the cover letter
- Test all preallocation modes
- Test allocation status with qemu-io 'map' [Vladimir]

Kevin Wolf (9):
  block: Add flags to BlockDriver.bdrv_co_truncate()
  block: Add flags to bdrv(_co)_truncate()
  block-backend: Add flags to blk_truncate()
  qcow2: Support BDRV_REQ_ZERO_WRITE for truncate
  raw-format: Support BDRV_REQ_ZERO_WRITE for truncate
  file-posix: Support BDRV_REQ_ZERO_WRITE for truncate
  block: truncate: Don't make backing file data visible
  iotests: Filter testfiles out in img_info_log()
  iotests: Test committing to short backing file

 include/block/block.h          |   5 +-
 include/block/block_int.h      |  10 +-
 include/sysemu/block-backend.h |   2 +-
 block.c                        |   3 +-
 block/block-backend.c          |   4 +-
 block/commit.c                 |   4 +-
 block/crypto.c                 |   7 +-
 block/file-posix.c             |   6 +-
 block/gluster.c                |   1 +
 block/io.c                     |  32 +++++-
 block/iscsi.c                  |   2 +-
 block/mirror.c                 |   2 +-
 block/nfs.c                    |   3 +-
 block/parallels.c              |   6 +-
 block/qcow.c                   |   4 +-
 block/qcow2-refcount.c         |   2 +-
 block/qcow2.c                  |  28 +++--
 block/qed.c                    |   3 +-
 block/raw-format.c             |   5 +-
 block/rbd.c                    |   1 +
 block/sheepdog.c               |   4 +-
 block/ssh.c                    |   2 +-
 block/vdi.c                    |   2 +-
 block/vhdx-log.c               |   2 +-
 block/vhdx.c                   |   6 +-
 block/vmdk.c                   |   8 +-
 block/vpc.c                    |   2 +-
 blockdev.c                     |   2 +-
 qemu-img.c                     |   2 +-
 qemu-io-cmds.c                 |   2 +-
 tests/test-block-iothread.c    |   9 +-
 tests/qemu-iotests/iotests.py  |   5 +-
 tests/qemu-iotests/206.out     |  12 +-
 tests/qemu-iotests/242.out     |  12 +-
 tests/qemu-iotests/274         | 152 +++++++++++++++++++++++++
 tests/qemu-iotests/274.out     | 202 +++++++++++++++++++++++++++++++++
 tests/qemu-iotests/group       |   1 +
 37 files changed, 483 insertions(+), 72 deletions(-)
 create mode 100755 tests/qemu-iotests/274
 create mode 100644 tests/qemu-iotests/274.out

-- 
2.20.1


Re: [PATCH v4 0/9] block: Fix resize (extending) of short overlays
Posted by no-reply@patchew.org 4 years ago
Patchew URL: https://patchew.org/QEMU/20200420133214.28921-1-kwolf@redhat.com/



Hi,

This series failed the docker-mingw@fedora build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#! /bin/bash
export ARCH=x86_64
make docker-image-fedora V=1 NETWORK=1
time make docker-test-mingw@fedora J=14 NETWORK=1
=== TEST SCRIPT END ===

  CC      block/dirty-bitmap.o
  CC      block/write-threshold.o
  CC      block/backup.o
/tmp/qemu-test/src/block/file-win32.c:647:27: error: initialization of 'int (*)(BlockDriverState *, int64_t,  _Bool,  PreallocMode,  BdrvRequestFlags,  Error **)' {aka 'int (*)(struct BlockDriverState *, long long int,  _Bool,  enum PreallocMode,  enum <anonymous>,  struct Error **)'} from incompatible pointer type 'int (*)(BlockDriverState *, int64_t,  _Bool,  PreallocMode,  Error **)' {aka 'int (*)(struct BlockDriverState *, long long int,  _Bool,  enum PreallocMode,  struct Error **)'} [-Werror=incompatible-pointer-types]
     .bdrv_co_truncate   = raw_co_truncate,
                           ^~~~~~~~~~~~~~~
/tmp/qemu-test/src/block/file-win32.c:647:27: note: (near initialization for 'bdrv_file.bdrv_co_truncate')
cc1: all warnings being treated as errors
make: *** [/tmp/qemu-test/src/rules.mak:69: block/file-win32.o] Error 1
make: *** Waiting for unfinished jobs....
Traceback (most recent call last):
  File "./tests/docker/docker.py", line 664, in <module>
---
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=67092de850d740e099c72a2716592e10', '-u', '1001', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-dnai7bqe/src/docker-src.2020-04-20-19.46.23.5204:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-mingw']' returned non-zero exit status 2.
filter=--filter=label=com.qemu.instance.uuid=67092de850d740e099c72a2716592e10
make[1]: *** [docker-run] Error 1
make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-dnai7bqe/src'
make: *** [docker-run-test-mingw@fedora] Error 2

real    2m42.450s
user    0m9.080s


The full log is available at
http://patchew.org/logs/20200420133214.28921-1-kwolf@redhat.com/testing.docker-mingw@fedora/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com