qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [PATCH 00/25] nbd: Several fixes


From: Paolo Bonzini
Subject: Re: [Qemu-block] [PATCH 00/25] nbd: Several fixes
Date: Wed, 11 Mar 2015 12:36:44 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0


On 25/02/2015 19:08, Max Reitz wrote:
> This series contains a variety of fixes for qemu's NBD code, with the
> most interesting (and probably most prone to be wrong) thing being a
> timeout of ten seconds for NBD connections.

As a first step, I am applying these patches:

Max Reitz (12):
      util/uri: Add overflow check to rfc3986_parse_port
      qemu-nbd: Detect unused partitions by system == 0
      nbd: Fix nbd_establish_connection()'s return value
      nbd: Fix response to invalid requests
      nbd: Pass return value from nbd_handle_list()
      nbd: Handle blk_getlength() failure
      qemu-nbd: fork() can fail
      nbd: Fix potential signed overflow issues
      nbd: Set block size to BDRV_SECTOR_SIZE
      nbd: Fix nbd_receive_options()
      nbd: Fix interpretation of the export flags
      nbd: Drop unexpected data for NBD_OPT_LIST
      coroutine-io: Return -errno in case of error

I disagree on the timeouts, because they can cause reordering of
operations (where you write A, get a timeout, write B, succeed, but then
A succeeds too and the application is confused).  The only correct
application of timeouts is to tear down the connection, reconnect _and_
resubmit pending I/O operations.

For all other patches, either I replied directly to the messages, or
they dependent on previous ones that are not included.

Thanks!

Paolo

> 
> 
> Max Reitz (25):
>   util/uri: Add overflow check to rfc3986_parse_port
>   qemu-nbd: Detect unused partitions by system == 0
>   nbd: Fix nbd_establish_connection()'s return value
>   nbd: Fix response to invalid requests
>   nbd: Avoid generic -EINVAL
>   nbd: Pass return value from nbd_handle_list()
>   nbd: Add "failed to open export" error message
>   nbd: Handle blk_getlength() failure
>   qemu-nbd: fork() can fail
>   nbd: Fix potential signed overflow issues
>   qemu-nbd: Fix and improve input verification
>   nbd: Set block size to BDRV_SECTOR_SIZE
>   nbd: Enforce sector alignment
>   coroutine: Add co_yield_timeout()
>   coroutine-io: Return -errno in case of error
>   coroutine-io: Add I/O functions with timeout
>   nbd: Employ timeouts
>   nbd: Fix nbd_receive_options()
>   nbd: Fix interpretation of the export flags
>   block/nbd: Comment on discard/flush silently failing
>   nbd: Drop unexpected data for NBD_OPT_LIST
>   iotests: Add _timeout function
>   iotests: Add test for invalid qemu-nbd parameters
>   iotests: Add test for issuing discard over NBD
>   iotests: Add test for a non-existing NBD export
> 
>  block/nbd-client.c           |  40 +++++++--
>  block/nbd-client.h           |   1 -
>  block/nbd.c                  |   2 +-
>  blockdev-nbd.c               |   6 +-
>  include/block/coroutine.h    |   6 ++
>  include/block/nbd.h          |  13 +--
>  include/qemu-common.h        |  45 ++++++++--
>  nbd.c                        | 203 
> ++++++++++++++++++++++++++++++-------------
>  qemu-coroutine-io.c          |  25 ++++--
>  qemu-coroutine-sleep.c       |  34 ++++++++
>  qemu-nbd.c                   |  74 +++++++++++-----
>  tests/qemu-iotests/096.out   |   2 +-
>  tests/qemu-iotests/125       |  69 +++++++++++++++
>  tests/qemu-iotests/125.out   |  21 +++++
>  tests/qemu-iotests/126       | 105 ++++++++++++++++++++++
>  tests/qemu-iotests/126.out   |  28 ++++++
>  tests/qemu-iotests/127       |  80 +++++++++++++++++
>  tests/qemu-iotests/127.out   |  14 +++
>  tests/qemu-iotests/common.rc |  16 ++++
>  tests/qemu-iotests/group     |   3 +
>  util/uri.c                   |  24 ++---
>  21 files changed, 686 insertions(+), 125 deletions(-)
>  create mode 100755 tests/qemu-iotests/125
>  create mode 100644 tests/qemu-iotests/125.out
>  create mode 100755 tests/qemu-iotests/126
>  create mode 100644 tests/qemu-iotests/126.out
>  create mode 100755 tests/qemu-iotests/127
>  create mode 100644 tests/qemu-iotests/127.out
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]