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
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
ping 31.07.2018 20:30, Vladimir Sementsov-Ogievskiy wrote: > 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 > -- Best regards, Vladimir
On 09/17/2018 11:26 AM, Vladimir Sementsov-Ogievskiy wrote: > ping > Is this still pending or did I/we miss a v5? > 31.07.2018 20:30, Vladimir Sementsov-Ogievskiy wrote: >> 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 >> > >
On 10/09/2018 10:33 PM, John Snow wrote: > > > On 09/17/2018 11:26 AM, Vladimir Sementsov-Ogievskiy wrote: >> ping >> > > Is this still pending or did I/we miss a v5? still pending > >> 31.07.2018 20:30, Vladimir Sementsov-Ogievskiy wrote: >>> 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 >>> >> >>
ping 31.07.2018 20:30, Vladimir Sementsov-Ogievskiy wrote: > 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 > -- Best regards, Vladimir
ping 31.07.2018 20:30, Vladimir Sementsov-Ogievskiy wrote: > 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 > -- Best regards, Vladimir
© 2016 - 2025 Red Hat, Inc.