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

2017-03-17 Thread Daniel P. Berrange
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+: 4714: error : virNetSocketReadWire:1800 : End 
> of file while reading data: Input/output error
> 
> or in the journal as:
> 
> Mar 13 16:19:33  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/ :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


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

2017-03-17 Thread Peter Krempa
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+: 4714: error : virNetSocketReadWire:1800 : End of 
file while reading data: Input/output error

or in the journal as:

Mar 13 16:19:33  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;

  error:
-- 
2.12.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list