[ovs-dev] [ovsdb-server logging 3/3] Suppress ovsdb-server log messages about connections from ovs-vsctl.

Jesse Gross jesse at nicira.com
Mon Jun 21 23:37:47 UTC 2010


This set looks good.

On Fri, Jun 11, 2010 at 2:48 PM, Ben Pfaff <blp at nicira.com> wrote:

> In the ovsdb-server log there are fairly continuous messages like these:
>
> Apr 26 11:27:55|15254|reconnect|INFO|unix:/tmp/stream-unix.31734.0:
> connected
> Apr 26 11:27:55|15255|reconnect|INFO|unix:/tmp/stream-unix.31734.0:
> connection dropped
> Apr 26 11:28:00|15256|reconnect|INFO|unix:/tmp/stream-unix.31810.0:
> connecting...
> Apr 26 11:28:00|15257|reconnect|INFO|unix:/tmp/stream-unix.31810.0:
> connected
> Apr 26 11:28:00|15258|reconnect|INFO|unix:/tmp/stream-unix.31810.0:
> connection dropped
>
> These just indicate that ovs-vsctl is connecting to ovsdb-server from,
> for example, the "vif" script.  But there's no need to log all that detail;
> it's simply not useful.  This commit suppresses it.
>
> Bug #2715.
> ---
>  lib/jsonrpc.c   |    6 +++++-
>  lib/reconnect.c |   39 +++++++++++++++++++++++++++++----------
>  lib/reconnect.h |    2 ++
>  3 files changed, 36 insertions(+), 11 deletions(-)
>
> diff --git a/lib/jsonrpc.c b/lib/jsonrpc.c
> index d06cdcd..32d34b4 100644
> --- a/lib/jsonrpc.c
> +++ b/lib/jsonrpc.c
> @@ -700,7 +700,10 @@ jsonrpc_session_open(const char *name)
>  }
>
>  /* Creates and returns a jsonrpc_session that is initially connected to
> - * 'jsonrpc'.  If the connection is dropped, it will not be reconnected.
> */
> + * 'jsonrpc'.  If the connection is dropped, it will not be reconnected.
> + *
> + * On the assumption that such connections are likely to be short-lived
> + * (e.g. from ovs-vsctl), informational logging for them is suppressed. */
>  struct jsonrpc_session *
>  jsonrpc_session_open_unreliably(struct jsonrpc *jsonrpc)
>  {
> @@ -708,6 +711,7 @@ jsonrpc_session_open_unreliably(struct jsonrpc
> *jsonrpc)
>
>     s = xmalloc(sizeof *s);
>     s->reconnect = reconnect_create(time_msec());
> +    reconnect_set_quiet(s->reconnect, true);
>     reconnect_set_name(s->reconnect, jsonrpc_get_name(jsonrpc));
>     reconnect_set_max_tries(s->reconnect, 0);
>     reconnect_connected(s->reconnect, time_msec());
> diff --git a/lib/reconnect.c b/lib/reconnect.c
> index 96917be..372c2eb 100644
> --- a/lib/reconnect.c
> +++ b/lib/reconnect.c
> @@ -52,6 +52,7 @@ struct reconnect {
>     int max_backoff;
>     int probe_interval;
>     bool passive;
> +    enum vlog_level info;       /* Used for informational messages. */
>
>     /* State. */
>     enum state state;
> @@ -98,6 +99,7 @@ reconnect_create(long long int now)
>     fsm->max_backoff = 8000;
>     fsm->probe_interval = 5000;
>     fsm->passive = false;
> +    fsm->info = VLL_INFO;
>
>     fsm->state = S_VOID;
>     fsm->state_entered = now;
> @@ -120,6 +122,22 @@ reconnect_destroy(struct reconnect *fsm)
>     }
>  }
>
> +/* If 'quiet' is true, 'fsm' will log informational messages at level
> VLL_DBG,
> + * by default keeping them out of log files.  This is appropriate if the
> + * connection is one that is expected to be short-lived, so that the log
> + * messages are merely distracting.
> + *
> + * If 'quiet' is false, 'fsm' logs informational messages at level
> VLL_INFO.
> + * This is the default.
> + *
> + * This setting has no effect on the log level of debugging, warning, or
> error
> + * messages. */
> +void
> +reconnect_set_quiet(struct reconnect *fsm, bool quiet)
> +{
> +    fsm->info = quiet ? VLL_DBG : VLL_INFO;
> +}
> +
>  /* Returns 'fsm''s name. */
>  const char *
>  reconnect_get_name(const struct reconnect *fsm)
> @@ -309,16 +327,17 @@ reconnect_disconnected(struct reconnect *fsm, long
> long int now, int error)
>                 VLOG_WARN("%s: connection dropped (%s)",
>                           fsm->name, strerror(error));
>             } else if (error == EOF) {
> -                VLOG_INFO("%s: connection closed by peer", fsm->name);
> +                VLOG(fsm->info, "%s: connection closed by peer",
> fsm->name);
>             } else {
> -                VLOG_INFO("%s: connection dropped", fsm->name);
> +                VLOG(fsm->info, "%s: connection dropped", fsm->name);
>             }
>         } else if (fsm->state == S_LISTENING) {
>             if (error > 0) {
>                 VLOG_WARN("%s: error listening for connections (%s)",
>                           fsm->name, strerror(error));
>             } else {
> -                VLOG_INFO("%s: error listening for connections",
> fsm->name);
> +                VLOG(fsm->info, "%s: error listening for connections",
> +                     fsm->name);
>             }
>         } else {
>             const char *type = fsm->passive ? "listen" : "connection";
> @@ -326,7 +345,7 @@ reconnect_disconnected(struct reconnect *fsm, long long
> int now, int error)
>                 VLOG_WARN("%s: %s attempt failed (%s)",
>                           fsm->name, type, strerror(error));
>             } else {
> -                VLOG_INFO("%s: %s attempt timed out", fsm->name, type);
> +                VLOG(fsm->info, "%s: %s attempt timed out", fsm->name,
> type);
>             }
>         }
>
> @@ -344,10 +363,10 @@ reconnect_disconnected(struct reconnect *fsm, long
> long int now, int error)
>                 fsm->backoff *= 2;
>             }
>             if (fsm->passive) {
> -                VLOG_INFO("%s: waiting %.3g seconds before trying to "
> +                VLOG(fsm->info, "%s: waiting %.3g seconds before trying to
> "
>                           "listen again", fsm->name, fsm->backoff /
> 1000.0);
>             } else {
> -                VLOG_INFO("%s: waiting %.3g seconds before reconnect",
> +                VLOG(fsm->info, "%s: waiting %.3g seconds before
> reconnect",
>                           fsm->name, fsm->backoff / 1000.0);
>             }
>         }
> @@ -366,9 +385,9 @@ reconnect_connecting(struct reconnect *fsm, long long
> int now)
>  {
>     if (fsm->state != S_CONNECT_IN_PROGRESS) {
>         if (fsm->passive) {
> -            VLOG_INFO("%s: listening...", fsm->name);
> +            VLOG(fsm->info, "%s: listening...", fsm->name);
>         } else {
> -            VLOG_INFO("%s: connecting...", fsm->name);
> +            VLOG(fsm->info, "%s: connecting...", fsm->name);
>         }
>         reconnect_transition__(fsm, now, S_CONNECT_IN_PROGRESS);
>     }
> @@ -389,7 +408,7 @@ void
>  reconnect_listening(struct reconnect *fsm, long long int now)
>  {
>     if (fsm->state != S_LISTENING) {
> -        VLOG_INFO("%s: listening...", fsm->name);
> +        VLOG(fsm->info, "%s: listening...", fsm->name);
>         reconnect_transition__(fsm, now, S_LISTENING);
>     }
>  }
> @@ -422,7 +441,7 @@ reconnect_connected(struct reconnect *fsm, long long
> int now)
>     if (!is_connected_state(fsm->state)) {
>         reconnect_connecting(fsm, now);
>
> -        VLOG_INFO("%s: connected", fsm->name);
> +        VLOG(fsm->info, "%s: connected", fsm->name);
>         reconnect_transition__(fsm, now, S_ACTIVE);
>         fsm->last_connected = now;
>     }
> diff --git a/lib/reconnect.h b/lib/reconnect.h
> index d0790ec..418f3e8 100644
> --- a/lib/reconnect.h
> +++ b/lib/reconnect.h
> @@ -35,6 +35,8 @@
>  struct reconnect *reconnect_create(long long int now);
>  void reconnect_destroy(struct reconnect *);
>
> +void reconnect_set_quiet(struct reconnect *, bool quiet);
> +
>  const char *reconnect_get_name(const struct reconnect *);
>  void reconnect_set_name(struct reconnect *, const char *name);
>
> --
> 1.7.1
>
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev_openvswitch.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20100621/69d48e35/attachment-0003.html>


More information about the dev mailing list