[libvirt] [PATCH 3/3] (log|lock)daemon: Don't spam logs with IO error messages after client disconnects

Daniel P. Berrange berrange at redhat.com
Fri Mar 17 16:13:02 UTC 2017


On Fri, Mar 17, 2017 at 04:48:51PM +0100, Peter Krempa wrote:
> The log and lock protocol don't have an extra handshake to close the
> connection. Instead they just close the socket. Unfortunately that
> resulted into a lot of spurious garbage logged to the system log files:
> 
> 2017-03-17 14:00:09.730+0000: 4714: error : virNetSocketReadWire:1800 : End of file while reading data: Input/output error
> 
> or in the journal as:
> 
> Mar 13 16:19:33 xxxx virtlogd[32360]: End of file while reading data: Input/output error
> 
> Use the new facility in the netserverclient to suppress the IO error
> report from the virNetSocket layer.
> ---
>  src/locking/lock_daemon.c | 3 +++
>  src/logging/log_daemon.c  | 3 +++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c
> index 1c94ddd05..12485e966 100644
> --- a/src/locking/lock_daemon.c
> +++ b/src/locking/lock_daemon.c
> @@ -712,6 +712,9 @@ virLockDaemonClientNew(virNetServerClientPtr client,
>          }
>      }
> 
> +    /* there's no closing handshake in the locking protocol */
> +    virNetServerClientSetQuietEOF(client);
> +
>      return priv;
> 
>   error:
> diff --git a/src/logging/log_daemon.c b/src/logging/log_daemon.c
> index 5997cce9d..d878efa63 100644
> --- a/src/logging/log_daemon.c
> +++ b/src/logging/log_daemon.c
> @@ -572,6 +572,9 @@ virLogDaemonClientNew(virNetServerClientPtr client,
>          }
>      }
> 
> +    /* there's no closing handshake in the logging protocol */
> +    virNetServerClientSetQuietEOF(client);
> +
>      return priv;
>

Ok, so you're setting this flag server side, and the virNetSocketRead
is triggered by virNetServerClientRead, in turn by n event handler
virNetServerClientDispatchRead. This method doesn't care about the
error message reported by virNetSocketRead at all - it simply marks
the client as needing closing.

So yeah, returning without setting an error is reasonable, though
I'd still prefer to have it return -2 rather than -1 for the case
where no error is reported.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|




More information about the libvir-list mailing list