mbox series

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

Message ID 20200420133214.28921-1-kwolf@redhat.com
Headers show
Series block: Fix resize (extending) of short overlays | expand

Message

Kevin Wolf April 20, 2020, 1:32 p.m. UTC
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

Comments

no-reply@patchew.org April 20, 2020, 11:49 p.m. UTC | #1
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