[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