From f01d3229830e47d42a6543b45c7a843ba43eb7c2 Mon Sep 17 00:00:00 2001 From: Pranith Kumar K 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 >Reviewed-on: http://review.gluster.org/15671 >Smoke: Gluster Build System >NetBSD-regression: NetBSD Build System >Reviewed-by: Atin Mukherjee >CentOS-regression: Gluster Build System BUG: 1385606 Change-Id: I415a5346c556f375311cdb2db8e8d09a3a289a9b Signed-off-by: Pranith Kumar K 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