qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	qemu-block@nongnu.org, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, pbonzini@redhat.com, den@openvz.org,
	P J P <ppandit@redhat.com>,
	mreitz@redhat.com
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH 06/17] block/nbd-client: fix nbd_read_reply_entry
Date: Mon, 7 Aug 2017 11:18:11 -0500	[thread overview]
Message-ID: <be296867-fc8b-26a4-2759-b762910f6685@redhat.com> (raw)
In-Reply-To: <b11f4185-df95-5891-f7d3-43c64d9cb3b5@virtuozzo.com>

[-- Attachment #1: Type: text/plain, Size: 1850 bytes --]

On 08/07/2017 11:09 AM, Vladimir Sementsov-Ogievskiy wrote:

>>>>> On 08/04/2017 10:14 AM, Vladimir Sementsov-Ogievskiy wrote:
>>>>>> Set reply.handle to 0 on error path to prevent normal path of
>>>>>> nbd_co_receive_reply.

>>
>> The client still tried to send a flush request to the server, when it
>> should REALLY quit talking to the server at all and just disconnect,
>> because the moment the client recognizes that the server has sent
>> garbage is the moment that the client can no longer assume that the
>> server will react correctly to any further commands.
>>
>> So I don't think your patch is quite correct, even if you have
>> identified a shortfall in our client code.
>>
> Why do you think so? It just does what it states in commit message.

The commit message doesn't state much on the way of WHY.  It it the
subsequent discussion that says that the reason WHY we need to fix
something is to make the client robustly hang up when it encounters a
broken server - but once you couch it in those terms, this patch is NOT
making the client hang up gracefully (it is making the client skip ONE
invalid reply, but then immediately lets the client send another request
and gets stuck waiting for a reply to that second request).  A full fix
for the issue would make sure the client hangs up as soon as it detects
a bogus server.

> 
> Patch 17 should fix the case (but I doubt that it can be taken separately).

It's okay if it takes more than one patch to fix an issue, if the
earlier patches document that more work is still needed.  Or maybe we
can squash the best parts of 17 and this one.  I'm still playing with
the best way to minimally address the issue for 2.10.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 619 bytes --]

  reply	other threads:[~2017-08-07 16:18 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-04 15:14 [Qemu-devel] [PATCH 00/17] nbd client refactoring and fixing Vladimir Sementsov-Ogievskiy
2017-08-04 15:14 ` [Qemu-devel] [PATCH 01/17] nbd/client: fix nbd_opt_go Vladimir Sementsov-Ogievskiy
2017-08-07 11:31   ` Eric Blake
2017-08-04 15:14 ` [Qemu-devel] [PATCH 02/17] nbd/client: refactor nbd_read_eof Vladimir Sementsov-Ogievskiy
2017-08-07 11:42   ` Eric Blake
2017-08-07 12:05     ` Vladimir Sementsov-Ogievskiy
2017-08-25 19:22       ` Eric Blake
2017-08-04 15:14 ` [Qemu-devel] [PATCH 03/17] nbd/client: refactor nbd_receive_reply Vladimir Sementsov-Ogievskiy
2017-08-25 21:16   ` Eric Blake
2017-08-04 15:14 ` [Qemu-devel] [PATCH 04/17] nbd/client: fix nbd_send_request to return int Vladimir Sementsov-Ogievskiy
2017-08-07  8:23   ` Daniel P. Berrange
2017-08-07  8:57     ` Vladimir Sementsov-Ogievskiy
2017-08-07 11:49       ` Eric Blake
2017-08-07 12:03       ` Daniel P. Berrange
2017-08-25 21:20   ` Eric Blake
2017-08-04 15:14 ` [Qemu-devel] [PATCH 05/17] block/nbd-client: get rid of ssize_t Vladimir Sementsov-Ogievskiy
2017-08-04 16:11   ` Daniel P. Berrange
2017-08-07  6:57     ` Vladimir Sementsov-Ogievskiy
2017-08-07  8:24       ` Daniel P. Berrange
2017-08-25 21:25   ` Eric Blake
2017-08-04 15:14 ` [Qemu-devel] [PATCH 06/17] block/nbd-client: fix nbd_read_reply_entry Vladimir Sementsov-Ogievskiy
2017-08-07 11:52   ` Eric Blake
2017-08-07 12:56     ` Vladimir Sementsov-Ogievskiy
2017-08-07 15:13       ` Eric Blake
2017-08-07 15:33         ` [Qemu-devel] [Qemu-block] " Eric Blake
2017-08-07 16:09           ` Vladimir Sementsov-Ogievskiy
2017-08-07 16:18             ` Eric Blake [this message]
2017-08-04 15:14 ` [Qemu-devel] [PATCH 07/17] block/nbd-client: refactor request send/receive Vladimir Sementsov-Ogievskiy
2017-08-25 18:49   ` Eric Blake
2017-08-25 19:08     ` Eric Blake
2017-08-04 15:14 ` [Qemu-devel] [PATCH 08/17] block/nbd-client: rename nbd_recv_coroutines_enter_all Vladimir Sementsov-Ogievskiy
2017-08-25 18:43   ` Eric Blake
2017-08-25 21:48     ` Eric Blake
2017-08-04 15:14 ` [Qemu-devel] [PATCH 09/17] block/nbd-client: move nbd_co_receive_reply content into nbd_co_request Vladimir Sementsov-Ogievskiy
2017-08-25 18:52   ` Eric Blake
2017-08-04 15:14 ` [Qemu-devel] [PATCH 10/17] block/nbd-client: move nbd_coroutine_end " Vladimir Sementsov-Ogievskiy
2017-08-25 21:57   ` Eric Blake
2017-08-04 15:14 ` [Qemu-devel] [PATCH 11/17] block/nbd-client: fix nbd_co_request: set s->reply.handle to 0 on error Vladimir Sementsov-Ogievskiy
2017-08-07 11:55   ` Eric Blake
2017-08-07 13:17     ` Vladimir Sementsov-Ogievskiy
2017-08-04 15:14 ` [Qemu-devel] [PATCH 12/17] block/nbd-client: refactor nbd_co_request Vladimir Sementsov-Ogievskiy
2017-08-04 15:14 ` [Qemu-devel] [PATCH 13/17] block/nbd-client: refactor NBDClientSession.recv_coroutine Vladimir Sementsov-Ogievskiy
2017-08-04 15:14 ` [Qemu-devel] [PATCH 14/17] block/nbd-client: exit reply-reading coroutine on incorrect handle Vladimir Sementsov-Ogievskiy
2017-08-04 15:14 ` [Qemu-devel] [PATCH 15/17] block/nbd-client: refactor reading reply Vladimir Sementsov-Ogievskiy
2017-08-04 15:14 ` [Qemu-devel] [PATCH 16/17] block/nbd-client: drop reply field from NBDClientSession Vladimir Sementsov-Ogievskiy
2017-08-04 15:14 ` [Qemu-devel] [PATCH 17/17] block/nbd-client: always return EIO on and after the first io channel error Vladimir Sementsov-Ogievskiy
2017-08-16 21:21 ` [Qemu-devel] [PATCH 00/17] nbd client refactoring and fixing Eric Blake
2017-08-17  7:37   ` Vladimir Sementsov-Ogievskiy
2017-08-25 22:10 ` Eric Blake
2017-08-29 22:12   ` Eric Blake

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=be296867-fc8b-26a4-2759-b762910f6685@redhat.com \
    --to=eblake@redhat.com \
    --cc=den@openvz.org \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=ppandit@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=vsementsov@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).