[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v4 00/10] NBD reconnect
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[Qemu-block] [PATCH v4 00/10] NBD reconnect |
Date: |
Tue, 31 Jul 2018 20:30:23 +0300 |
Hi all.
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: - add Eric's r-b to 01.
- drop CONNECTING_INIT mode, don't reconnect on _open.
- new api: only one parameter @reconnect-delay
- new interval scheme between reconnect attempts
(1 - 2 - 4 - 8 - 16 - 16 ... seconds)
- fixes and refactorings in main patch (09), including merge with
old 08 patch
v3:
06: fix build error in function 'nbd_co_send_request':
error: 'i' may be used uninitialized in this function
v2 notes:
Here is v2 of NBD reconnect, but it is very very different from v1, so,
forget about v1.
The series includes my "NBD reconnect: preliminary refactoring", with
changes in 05: leave asserts (Eric).
Vladimir Sementsov-Ogievskiy (10):
block/nbd-client: split channel errors from export errors
block/nbd: move connection code from block/nbd to block/nbd-client
block/nbd-client: split connection from initialization
block/nbd-client: fix nbd_reply_chunk_iter_receive
block/nbd-client: don't check ioc
block/nbd-client: move from quit to state
block/nbd-client: rename read_reply_co to connection_co
block/nbd: add cmdline and qapi parameter reconnect-delay
block/nbd-client: nbd reconnect
iotests: test nbd reconnect
qapi/block-core.json | 12 +-
block/nbd-client.h | 20 +-
block/nbd-client.c | 515 +++++++++++++++++++++++++++++++-----------
block/nbd.c | 56 ++---
tests/qemu-iotests/220 | 67 ++++++
tests/qemu-iotests/220.out | 7 +
tests/qemu-iotests/group | 1 +
tests/qemu-iotests/iotests.py | 4 +
8 files changed, 512 insertions(+), 170 deletions(-)
create mode 100755 tests/qemu-iotests/220
create mode 100644 tests/qemu-iotests/220.out
--
2.11.1
- [Qemu-block] [PATCH v4 00/10] NBD reconnect,
Vladimir Sementsov-Ogievskiy <=
- [Qemu-block] [PATCH v4 03/10] block/nbd-client: split connection from initialization, Vladimir Sementsov-Ogievskiy, 2018/07/31
- [Qemu-block] [PATCH v4 04/10] block/nbd-client: fix nbd_reply_chunk_iter_receive, Vladimir Sementsov-Ogievskiy, 2018/07/31
- [Qemu-block] [PATCH v4 05/10] block/nbd-client: don't check ioc, Vladimir Sementsov-Ogievskiy, 2018/07/31
- [Qemu-block] [PATCH v4 02/10] block/nbd: move connection code from block/nbd to block/nbd-client, Vladimir Sementsov-Ogievskiy, 2018/07/31
- [Qemu-block] [PATCH v4 07/10] block/nbd-client: rename read_reply_co to connection_co, Vladimir Sementsov-Ogievskiy, 2018/07/31
- [Qemu-block] [PATCH v4 06/10] block/nbd-client: move from quit to state, Vladimir Sementsov-Ogievskiy, 2018/07/31
- [Qemu-block] [PATCH v4 08/10] block/nbd: add cmdline and qapi parameter reconnect-delay, Vladimir Sementsov-Ogievskiy, 2018/07/31
- [Qemu-block] [PATCH v4 10/10] iotests: test nbd reconnect, Vladimir Sementsov-Ogievskiy, 2018/07/31
- [Qemu-block] [PATCH v4 09/10] block/nbd-client: nbd reconnect, Vladimir Sementsov-Ogievskiy, 2018/07/31
- [Qemu-block] [PATCH v4 01/10] block/nbd-client: split channel errors from export errors, Vladimir Sementsov-Ogievskiy, 2018/07/31