[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] ping Re: [PATCH v6 0/7] NBD reconnect
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[Qemu-block] ping Re: [PATCH v6 0/7] NBD reconnect |
Date: |
Wed, 15 May 2019 09:03:07 +0000 |
ping
11.04.2019 20:27, Vladimir Sementsov-Ogievskiy wrote:
> Here is NBD reconnect. Previously, if connection failed all current
> and future requests will fail. After the series, nbd-client driver
> will try to reconnect unlimited times. During first @reconnect-delay
> seconds of reconnecting all requests will wait for the connection,
> and if it is established requests will be resent. After
> @reconnect-delay period all requests will be failed (until successful
> reconnect).
>
> v4->v6:
> (some preparing patches from v4 was merged as v5)
> 01: new
> 02: new
> 03: - drop unused things
> - future states
> - future s/break/continue/
> 04: - fix typos
> - s/3.1/4.1/
> - set 0 as default
> 05: new
> 06: - new states and s/break/continue/ moved here from 03
> - drop NBDClientSession.receiving, as now in_flight
> requests used instread
> - add copyright
> - go to NBD_CLIENT_CONNECTING_NOWAIT immediately if
> reconnect_delay is 0 (so, reconnect_delay moved to
> NBDClientSession)
> - on close, do qemu_co_sleep_wake(client->connection_co),
> to not wait for reconnect loop iteration
> - handle state transition to QUIT during reconnect loop
> (assert(nbd_client_connecting(s)) was bad idea)
> - don't try to fail on protocol errors after
> nbd_client_connect, as we can't distinguish them
> - decrement in_flight around reconnect sleep to make
> it possible to drain and exit during it
> (v4 was based on something before in_flight logic
> introduced into nbd-client)
> - changed logic in nbd_client_attach_aio_context
> 07: - refactor, using log and qmp_log
> - drop export name
> - drop strange try/except
> - add reconnect-delay option (as 0 is a default now)
>
>
> Vladimir Sementsov-Ogievskiy (7):
> block/nbd-client: split connection_co start out of nbd_client_connect
> block/nbd-client: use non-blocking io channel for nbd negotiation
> block/nbd-client: move from quit to state
> block/nbd: add cmdline and qapi parameter reconnect-delay
> qemu-coroutine-sleep: introduce qemu_co_sleep_wake
> block/nbd-client: nbd reconnect
> iotests: test nbd reconnect
>
> qapi/block-core.json | 12 +-
> block/nbd-client.h | 15 +-
> include/block/nbd.h | 3 +-
> include/qemu/coroutine.h | 6 +
> block/nbd-client.c | 416 +++++++++++++++++++++++++---------
> block/nbd.c | 16 +-
> nbd/client.c | 16 +-
> qemu-nbd.c | 2 +-
> util/qemu-coroutine-sleep.c | 20 +-
> tests/qemu-iotests/249 | 63 +++++
> tests/qemu-iotests/249.out | 10 +
> tests/qemu-iotests/group | 1 +
> tests/qemu-iotests/iotests.py | 4 +
> 13 files changed, 468 insertions(+), 116 deletions(-)
> create mode 100755 tests/qemu-iotests/249
> create mode 100644 tests/qemu-iotests/249.out
>
--
Best regards,
Vladimir
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-block] ping Re: [PATCH v6 0/7] NBD reconnect,
Vladimir Sementsov-Ogievskiy <=