[Qemu-devel] [PATCH v4 00/10] NBD reconnect

Vladimir Sementsov-Ogievskiy posted 10 patches 7 years, 3 months ago
Failed in applying to current master (apply log)
Test checkpatch passed
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test docker-quick@centos7 passed
There is a newer version of this series
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
[Qemu-devel] [PATCH v4 00/10] NBD reconnect
Posted by Vladimir Sementsov-Ogievskiy 7 years, 3 months ago
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


Re: [Qemu-devel] [PATCH v4 00/10] NBD reconnect
Posted by Vladimir Sementsov-Ogievskiy 7 years, 1 month ago
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


Re: [Qemu-devel] [Qemu-block] [PATCH v4 00/10] NBD reconnect
Posted by John Snow 7 years ago

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
>>
> 
>

Re: [Qemu-devel] [Qemu-block] [PATCH v4 00/10] NBD reconnect
Posted by Vladimir Sementsov-Ogievskiy 7 years ago

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
>>>
>>
>>
[Qemu-devel] ping Re: [PATCH v4 00/10] NBD reconnect
Posted by Vladimir Sementsov-Ogievskiy 6 years, 10 months ago
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
[Qemu-devel] ping3 Re: [PATCH v4 00/10] NBD reconnect
Posted by Vladimir Sementsov-Ogievskiy 6 years, 10 months ago
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