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

Ben Pfaff blp at nicira.com
Tue Jun 22 18:53:25 UTC 2010


Thanks, I pushed these out.

On Mon, Jun 21, 2010 at 04:37:47PM -0700, Jesse Gross wrote:
> 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
> >




More information about the dev mailing list