qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] ping Re: [PATCH v6 0/7] NBD reconnect


From: Vladimir Sementsov-Ogievskiy
Subject: [Qemu-devel] 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

reply via email to

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