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