Blob Blame History Raw
From f01d3229830e47d42a6543b45c7a843ba43eb7c2 Mon Sep 17 00:00:00 2001
From: Pranith Kumar K <pkarampu@redhat.com>
Date: Tue, 18 Oct 2016 15:16:17 +0530
Subject: [PATCH 175/206] events: Add FMT_WARN for gf_event

Raghavendra G found that posix is trying to print %s
but passing an int when HEALTH_CHECK fails in posix.
These are the kind of bugs that should be caught
at compilation itself.
Also fixed the problematic gf_event() callers.

 >BUG: 1386097
 >Change-Id: Id7bd6d9a9690237cec3ca1aefa2aac085e8a1270
 >Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
 >Reviewed-on: http://review.gluster.org/15671
 >Smoke: Gluster Build System <jenkins@build.gluster.org>
 >NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
 >Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
 >CentOS-regression: Gluster Build System <jenkins@build.gluster.org>

BUG: 1385606
Change-Id: I415a5346c556f375311cdb2db8e8d09a3a289a9b
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/90550
---
 cli/src/cli-cmd-volume.c                        |  4 ++--
 libglusterfs/src/events.c                       |  2 +-
 libglusterfs/src/events.h                       | 10 ++++++++--
 xlators/cluster/afr/src/afr-self-heal-common.c  |  5 ++++-
 xlators/cluster/dht/src/dht-rebalance.c         |  2 +-
 xlators/mgmt/glusterd/src/glusterd-svc-helper.c | 13 ++++++++++---
 xlators/mgmt/glusterd/src/glusterd-utils.c      | 13 +++----------
 xlators/storage/posix/src/posix-helpers.c       |  2 +-
 8 files changed, 30 insertions(+), 21 deletions(-)

diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c
index 998bf46..b4fdecd 100644
--- a/cli/src/cli-cmd-volume.c
+++ b/cli/src/cli-cmd-volume.c
@@ -1065,7 +1065,7 @@ out:
                         cli_out ("Volume add-brick failed");
         } else {
 #if (USE_EVENTS)
-                gf_event (EVENT_VOLUME_ADD_BRICK, event_str);
+                gf_event (EVENT_VOLUME_ADD_BRICK, "%s", event_str);
                 GF_FREE (event_str);
 #endif
         }
@@ -2055,7 +2055,7 @@ out:
         } else {
 #if (USE_EVENTS)
                 if (!event_ret) {
-                        gf_event (event, event_str);
+                        gf_event (event, "%s", event_str);
                         GF_FREE (event_str);
                 }
 #endif
diff --git a/libglusterfs/src/events.c b/libglusterfs/src/events.c
index b7b513e..6b3a73d 100644
--- a/libglusterfs/src/events.c
+++ b/libglusterfs/src/events.c
@@ -32,7 +32,7 @@
 
 
 int
-gf_event (eventtypes_t event, char *fmt, ...)
+_gf_event (eventtypes_t event, char *fmt, ...)
 {
         int                ret                   = 0;
         int                sock                  = -1;
diff --git a/libglusterfs/src/events.h b/libglusterfs/src/events.h
index 6b280a0..e059bc9 100644
--- a/libglusterfs/src/events.h
+++ b/libglusterfs/src/events.h
@@ -15,13 +15,19 @@
 
 #ifdef USE_EVENTS
 int
-gf_event (eventtypes_t event, char *fmt, ...);
+_gf_event (eventtypes_t event, char *fmt, ...);
 #else
 static inline int
-gf_event (eventtypes_t event, char *fmt, ...)
+_gf_event (eventtypes_t event, char *fmt, ...)
 {
         return 0;
 }
 #endif /* USE_EVENTS */
 
+#define gf_event(event, fmt...)                         \
+        do {                                            \
+                FMT_WARN(fmt);                          \
+                _gf_event (event, ##fmt);               \
+        } while (0)
+
 #endif /* __EVENTS_H__ */
diff --git a/xlators/cluster/afr/src/afr-self-heal-common.c b/xlators/cluster/afr/src/afr-self-heal-common.c
index 8d73a80..3110c1a 100644
--- a/xlators/cluster/afr/src/afr-self-heal-common.c
+++ b/xlators/cluster/afr/src/afr-self-heal-common.c
@@ -1604,6 +1604,7 @@ afr_selfheal_unlocked_inspect (call_frame_t *frame, xlator_t *this,
 	int i = 0;
 	int valid_cnt = 0;
 	struct iatt first = {0, };
+        int first_idx = 0;
 	struct afr_reply *replies = NULL;
 	int ret = -1;
 
@@ -1643,6 +1644,7 @@ afr_selfheal_unlocked_inspect (call_frame_t *frame, xlator_t *this,
 		valid_cnt++;
 		if (valid_cnt == 1) {
 			first = replies[i].poststat;
+                        first_idx = i;
 			continue;
 		}
 
@@ -1658,7 +1660,8 @@ afr_selfheal_unlocked_inspect (call_frame_t *frame, xlator_t *this,
                                 "type=file;gfid=%s;"
                                 "ia_type-%d=%s;ia_type-%d=%s",
                                 this->name,
-                                uuid_utoa (replies[i].poststat.ia_gfid), first,
+                                uuid_utoa (replies[i].poststat.ia_gfid),
+                                first_idx,
                                 gf_inode_type_to_str (first.ia_type), i,
                             gf_inode_type_to_str (replies[i].poststat.ia_type));
                         ret = -EIO;
diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c
index 5d28e0a..2373e9d 100644
--- a/xlators/cluster/dht/src/dht-rebalance.c
+++ b/xlators/cluster/dht/src/dht-rebalance.c
@@ -149,7 +149,7 @@ dht_send_rebalance_event (xlator_t *this, int cmd, gf_defrag_status_t status)
         }
 
         if (event != EVENT_LAST) {
-                ret = gf_event (event, "volume=%s", volname);
+                gf_event (event, "volume=%s", volname);
         }
 
         GF_FREE (tmpstr);
diff --git a/xlators/mgmt/glusterd/src/glusterd-svc-helper.c b/xlators/mgmt/glusterd/src/glusterd-svc-helper.c
index 72f0092..70a12df 100644
--- a/xlators/mgmt/glusterd/src/glusterd-svc-helper.c
+++ b/xlators/mgmt/glusterd/src/glusterd-svc-helper.c
@@ -28,16 +28,19 @@ glusterd_svcs_reconfigure ()
         int              ret  = 0;
         xlator_t        *this = THIS;
         glusterd_conf_t *conf = NULL;
+        char            *svc_name = NULL;
 
         GF_ASSERT (this);
 
         conf = this->private;
         GF_ASSERT (conf);
 
+        svc_name = "nfs";
         ret = glusterd_nfssvc_reconfigure ();
         if (ret)
                 goto out;
 
+        svc_name = "self-heald";
         ret = glusterd_shdsvc_reconfigure ();
         if (ret)
                 goto out;
@@ -45,20 +48,24 @@ glusterd_svcs_reconfigure ()
         if (conf->op_version == GD_OP_VERSION_MIN)
                 goto out;
 
+        svc_name = "quotad";
         ret = glusterd_quotadsvc_reconfigure ();
         if (ret)
                 goto out;
 
+        svc_name = "bitd";
         ret = glusterd_bitdsvc_reconfigure ();
         if (ret)
                 goto out;
+
+        svc_name = "scrubber";
         ret = glusterd_scrubsvc_reconfigure ();
         if (ret)
                 goto out;
 out:
-        if (ret)
-                gf_event (EVENT_SVC_RECONFIGURE_FAILED, "");
-
+        if (ret && svc_name)
+                gf_event (EVENT_SVC_RECONFIGURE_FAILED, "svc_name=%s",
+                          svc_name);
         return ret;
 }
 
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index df0c0ab..8955994 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -4384,10 +4384,7 @@ glusterd_compare_friend_data (dict_t *peer_data, int32_t *status,
                 ret = glusterd_import_friend_volumes (peer_data);
                 if (ret)
                         goto out;
-
-                if (glusterd_svcs_manager (NULL)) {
-                        gf_event (EVENT_SVC_MANAGER_FAILED, "");
-                }
+                glusterd_svcs_manager (NULL);
         }
 
 out:
@@ -4916,9 +4913,7 @@ glusterd_restart_bricks (glusterd_conf_t *conf)
                         continue;
                 if (start_svcs == _gf_false) {
                         start_svcs = _gf_true;
-                        if (glusterd_svcs_manager (NULL)) {
-                                gf_event (EVENT_SVC_MANAGER_FAILED, "");
-                        }
+                        glusterd_svcs_manager (NULL);
                 }
                 gf_msg_debug (this->name, 0, "starting the volume %s",
                         volinfo->volname);
@@ -4968,9 +4963,7 @@ glusterd_restart_bricks (glusterd_conf_t *conf)
                         }
                         if (start_svcs == _gf_false) {
                                 start_svcs = _gf_true;
-                                if (glusterd_svcs_manager (volinfo)) {
-                                        gf_event (EVENT_SVC_MANAGER_FAILED, "");
-                                }
+                                glusterd_svcs_manager (volinfo);
                         }
                         start_svcs = _gf_true;
                         gf_msg_debug (this->name, 0, "starting the snap "
diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c
index 2912896..24b8bdd 100644
--- a/xlators/storage/posix/src/posix-helpers.c
+++ b/xlators/storage/posix/src/posix-helpers.c
@@ -1778,7 +1778,7 @@ out:
                         "%s() on %s returned", op, file_path);
                 gf_event (EVENT_POSIX_HEALTH_CHECK_FAILED,
                           "op=%s;path=%s;error=%s;brick=%s:%s", op, file_path,
-                          op_errno, priv->hostname, priv->base_path);
+                          strerror (op_errno), priv->hostname, priv->base_path);
         }
         return ret;
 
-- 
2.9.3