[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v9 0/3] NBD reconnect
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v9 0/3] NBD reconnect |
Date: |
Wed, 9 Oct 2019 11:41:55 +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).
v10:
01: add Eric's r-b
02: drop dead assignment local_err = NULL
s/nbd_reconnect_loop/nbd_co_reconnect_loop/
03: avoid race conditions + some improvements
- introduce qemu_io_silent_check and use it to wait for NBD server
start
- use size variable instead of '5M' in all places
- use smart waiting loop instead of sleep, to wait for job progress
- do srv.wait() after srv.kill(), to be sure that server is stopped
- drop throttling earlier
- drop 'quick' tag in group file
Vladimir Sementsov-Ogievskiy (3):
qemu-coroutine-sleep: introduce qemu_co_sleep_wake
block/nbd: nbd reconnect
iotests: test nbd reconnect
include/qemu/coroutine.h | 23 ++-
block/nbd.c | 331 +++++++++++++++++++++++++++-------
util/qemu-coroutine-sleep.c | 51 ++++--
tests/qemu-iotests/264 | 95 ++++++++++
tests/qemu-iotests/264.out | 13 ++
tests/qemu-iotests/group | 1 +
tests/qemu-iotests/iotests.py | 11 ++
7 files changed, 447 insertions(+), 78 deletions(-)
create mode 100755 tests/qemu-iotests/264
create mode 100644 tests/qemu-iotests/264.out
--
2.21.0