[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 00/10] vhost: stick to -errno error return convention
From: |
Michael S. Tsirkin |
Subject: |
Re: [PATCH 00/10] vhost: stick to -errno error return convention |
Date: |
Sun, 28 Nov 2021 16:47:20 -0500 |
On Thu, Nov 11, 2021 at 06:33:44PM +0300, Roman Kagan wrote:
> Error propagation between the generic vhost code and the specific backends is
> not quite consistent: some places follow "return -1 and set errno" convention,
> while others assume "return negated errno". Furthermore, not enough care is
> taken not to clobber errno.
>
> As a result, on certain code paths the errno resulting from a failure may get
> overridden by another function call, and then that zero errno inidicating
> success is propagated up the stack, leading to failures being lost. In
> particular, we've seen errors in the communication with a vhost-user-blk slave
> not trigger an immediate connection drop and reconnection, leaving it in a
> broken state.
>
> Rework error propagation to always return negated errno on errors and
> correctly pass it up the stack.
Hi Roman,
if there are bugfixes here I'll be happy to take them right now.
The wholesale rework seems inappropriate for 6.2, I'll be
happy to tag it for after 6.2. Pls ping me aftre release to help
make sure it's not lost.
> Roman Kagan (10):
> vhost-user-blk: reconnect on any error during realize
> chardev/char-socket: tcp_chr_recv: don't clobber errno
> chardev/char-socket: tcp_chr_sync_read: don't clobber errno
> chardev/char-fe: don't allow EAGAIN from blocking read
> vhost-backend: avoid overflow on memslots_limit
> vhost-backend: stick to -errno error return convention
> vhost-vdpa: stick to -errno error return convention
> vhost-user: stick to -errno error return convention
> vhost: stick to -errno error return convention
> vhost-user-blk: propagate error return from generic vhost
>
> chardev/char-fe.c | 7 +-
> chardev/char-socket.c | 17 +-
> hw/block/vhost-user-blk.c | 4 +-
> hw/virtio/vhost-backend.c | 4 +-
> hw/virtio/vhost-user.c | 401 +++++++++++++++++++++-----------------
> hw/virtio/vhost-vdpa.c | 37 ++--
> hw/virtio/vhost.c | 98 +++++-----
> 7 files changed, 307 insertions(+), 261 deletions(-)
>
> --
> 2.33.1
>
- Re: [PATCH 06/10] vhost-backend: stick to -errno error return convention, (continued)
- [PATCH 04/10] chardev/char-fe: don't allow EAGAIN from blocking read, Roman Kagan, 2021/11/11
- [PATCH 10/10] vhost-user-blk: propagate error return from generic vhost, Roman Kagan, 2021/11/11
- [PATCH 08/10] vhost-user: stick to -errno error return convention, Roman Kagan, 2021/11/11
- [PATCH 09/10] vhost: stick to -errno error return convention, Roman Kagan, 2021/11/11
- Re: [PATCH 00/10] vhost: stick to -errno error return convention, Michael S. Tsirkin, 2021/11/11
- Re: [PATCH 00/10] vhost: stick to -errno error return convention,
Michael S. Tsirkin <=