All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Max Reitz <mreitz@redhat.com>, qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
	qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 00/25] nbd: Several fixes
Date: Wed, 11 Mar 2015 12:36:44 +0100	[thread overview]
Message-ID: <550028CC.9090500@redhat.com> (raw)
In-Reply-To: <1424887718-10800-1-git-send-email-mreitz@redhat.com>



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
> 

      parent reply	other threads:[~2015-03-11 11:36 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-25 18:08 [Qemu-devel] [PATCH 00/25] nbd: Several fixes Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 01/25] util/uri: Add overflow check to rfc3986_parse_port Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 02/25] qemu-nbd: Detect unused partitions by system == 0 Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 03/25] nbd: Fix nbd_establish_connection()'s return value Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 04/25] nbd: Fix response to invalid requests Max Reitz
2015-03-02 16:52   ` Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 05/25] nbd: Avoid generic -EINVAL Max Reitz
2015-03-11 11:22   ` Paolo Bonzini
2015-03-16 13:51     ` Max Reitz
2015-03-16 14:42       ` Paolo Bonzini
2015-03-16 14:48         ` Max Reitz
2015-03-16 14:49           ` Paolo Bonzini
2015-02-25 18:08 ` [Qemu-devel] [PATCH 06/25] nbd: Pass return value from nbd_handle_list() Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 07/25] nbd: Add "failed to open export" error message Max Reitz
2015-03-11 11:24   ` Paolo Bonzini
2015-03-16 13:55     ` Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 08/25] nbd: Handle blk_getlength() failure Max Reitz
2015-03-11 11:26   ` Paolo Bonzini
2015-02-25 18:08 ` [Qemu-devel] [PATCH 09/25] qemu-nbd: fork() can fail Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 10/25] nbd: Fix potential signed overflow issues Max Reitz
2015-03-11 11:28   ` Paolo Bonzini
2015-02-25 18:08 ` [Qemu-devel] [PATCH 11/25] qemu-nbd: Fix and improve input verification Max Reitz
2015-03-11 11:30   ` Paolo Bonzini
2015-03-16 13:56     ` Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 12/25] nbd: Set block size to BDRV_SECTOR_SIZE Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 13/25] nbd: Enforce sector alignment Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 14/25] coroutine: Add co_yield_timeout() Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 15/25] coroutine-io: Return -errno in case of error Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 16/25] coroutine-io: Add I/O functions with timeout Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 17/25] nbd: Employ timeouts Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 18/25] nbd: Fix nbd_receive_options() Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 19/25] nbd: Fix interpretation of the export flags Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 20/25] block/nbd: Comment on discard/flush silently failing Max Reitz
2015-03-11 11:31   ` Paolo Bonzini
2015-03-16 13:58     ` Max Reitz
2015-03-16 14:44       ` Paolo Bonzini
2015-03-16 14:49         ` Max Reitz
2015-03-16 14:51           ` Paolo Bonzini
2015-03-16 14:52             ` Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 21/25] nbd: Drop unexpected data for NBD_OPT_LIST Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 22/25] iotests: Add _timeout function Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 23/25] iotests: Add test for invalid qemu-nbd parameters Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 24/25] iotests: Add test for issuing discard over NBD Max Reitz
2015-02-25 18:08 ` [Qemu-devel] [PATCH 25/25] iotests: Add test for a non-existing NBD export Max Reitz
2015-02-25 18:11 ` [Qemu-devel] [PATCH 00/25] nbd: Several fixes Max Reitz
2015-03-11 11:36 ` Paolo Bonzini [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=550028CC.9090500@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.