3604df
From 2306935d3244023b43a651312611c409ddd0609d Mon Sep 17 00:00:00 2001
3604df
From: Atin Mukherjee <amukherj@redhat.com>
3604df
Date: Tue, 22 Nov 2016 19:04:54 +0530
3604df
Subject: [PATCH 190/206] glusterd: fix few events generation
3604df
3604df
This patch does the following:
3604df
1. Generate PEER_REJECT event if the peer add request is from an unknown peer
3604df
during peer handshaking.
3604df
2. EVENT_COMPARE_FRIEND_VOLUME_FAILED should be generated based on status code,
3604df
not ret.
3604df
3. Add EVENT_BRICKPATH_RESOLVE_FAILED event in case glusterd fails to resolve
3604df
bricks, this is mainly at restore path.
3604df
4. Remove EVENT_BRICKS_START_FAILED event as we already have
3604df
EVENT_BRICK_START_FAILED
3604df
3604df
>Reviewed-on: http://review.gluster.org/15903
3604df
>Smoke: Gluster Build System <jenkins@build.gluster.org>
3604df
>NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
3604df
>CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
3604df
>Reviewed-by: Samikshan Bairagya <samikshan@gmail.com>
3604df
3604df
>Reviewed-on: http://review.gluster.org/15912
3604df
>Smoke: Gluster Build System <jenkins@build.gluster.org>
3604df
>NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
3604df
>CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
3604df
>Reviewed-by: Samikshan Bairagya <samikshan@gmail.com>
3604df
3604df
Change-Id: I90e5bc4a331166d0bb3554eb2ec9df2526837a1d
3604df
BUG: 1397430
3604df
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
3604df
Reviewed-on: https://code.engineering.redhat.com/gerrit/91097
3604df
---
3604df
 events/eventskeygen.py                             |  1 -
3604df
 xlators/mgmt/glusterd/src/glusterd-brick-ops.c     |  3 ++-
3604df
 xlators/mgmt/glusterd/src/glusterd-handler.c       |  1 +
3604df
 xlators/mgmt/glusterd/src/glusterd-replace-brick.c |  1 -
3604df
 xlators/mgmt/glusterd/src/glusterd-store.c         |  8 ++++++++
3604df
 xlators/mgmt/glusterd/src/glusterd-utils.c         | 11 ++++++-----
3604df
 6 files changed, 17 insertions(+), 8 deletions(-)
3604df
3604df
diff --git a/events/eventskeygen.py b/events/eventskeygen.py
3604df
index 33398ee..438f6b6 100644
3604df
--- a/events/eventskeygen.py
3604df
+++ b/events/eventskeygen.py
3604df
@@ -112,7 +112,6 @@ keys = (
3604df
     "EVENT_BRICK_STOP_FAILED",
3604df
     "EVENT_BRICK_DISCONNECTED",
3604df
     "EVENT_BRICK_CONNECTED",
3604df
-    "EVENT_BRICKS_START_FAILED",
3604df
     "EVENT_BRICKPATH_RESOLVE_FAILED",
3604df
     "EVENT_NOTIFY_UNKNOWN_OP",
3604df
     "EVENT_QUORUM_LOST",
3604df
diff --git a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
3604df
index 971dac8..5791e98 100644
3604df
--- a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
3604df
+++ b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
3604df
@@ -1501,7 +1501,8 @@ glusterd_op_perform_add_bricks (glusterd_volinfo_t *volinfo, int32_t count,
3604df
                         ret = glusterd_resolve_brick (brickinfo);
3604df
                         if (ret) {
3604df
                                 gf_msg ("glusterd", GF_LOG_ERROR, 0,
3604df
-                                        GD_MSG_RESOLVE_BRICK_FAIL, FMTSTR_RESOLVE_BRICK,
3604df
+                                        GD_MSG_RESOLVE_BRICK_FAIL,
3604df
+                                        FMTSTR_RESOLVE_BRICK,
3604df
                                         brickinfo->hostname, brickinfo->path);
3604df
                                 goto out;
3604df
                         }
3604df
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c
3604df
index b9270d8..a41960d 100644
3604df
--- a/xlators/mgmt/glusterd/src/glusterd-handler.c
3604df
+++ b/xlators/mgmt/glusterd/src/glusterd-handler.c
3604df
@@ -107,6 +107,7 @@ glusterd_handle_friend_req (rpcsvc_request_t *req, uuid_t  uuid,
3604df
         peerinfo = glusterd_peerinfo_find (uuid, rhost);
3604df
 
3604df
         if (peerinfo == NULL) {
3604df
+                gf_event (EVENT_PEER_REJECT, "peer=%s", hostname);
3604df
                 ret = glusterd_xfer_friend_add_resp (req, hostname, rhost, port,
3604df
                                                      -1, GF_PROBE_UNKNOWN_PEER);
3604df
                 if (friend_req->vols.vols_val) {
3604df
diff --git a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c
3604df
index aaa5a35..f77785c 100644
3604df
--- a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c
3604df
+++ b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c
3604df
@@ -376,7 +376,6 @@ glusterd_op_perform_replace_brick (glusterd_volinfo_t  *volinfo,
3604df
                 goto out;
3604df
 
3604df
         ret = glusterd_resolve_brick (new_brickinfo);
3604df
-
3604df
         if (ret)
3604df
                 goto out;
3604df
 
3604df
diff --git a/xlators/mgmt/glusterd/src/glusterd-store.c b/xlators/mgmt/glusterd/src/glusterd-store.c
3604df
index 70627f3..cf1b3ae 100644
3604df
--- a/xlators/mgmt/glusterd/src/glusterd-store.c
3604df
+++ b/xlators/mgmt/glusterd/src/glusterd-store.c
3604df
@@ -3433,6 +3433,10 @@ glusterd_resolve_snap_bricks (xlator_t  *this, glusterd_snap_t *snap)
3604df
                                          brick_list) {
3604df
                         ret = glusterd_resolve_brick (brickinfo);
3604df
                         if (ret) {
3604df
+                                gf_event (EVENT_BRICKPATH_RESOLVE_FAILED,
3604df
+                                          "peer=%s;volume=%s;brick=%s",
3604df
+                                          brickinfo->hostname, volinfo->volname,
3604df
+                                          brickinfo->path);
3604df
                                 gf_msg (this->name, GF_LOG_ERROR, 0,
3604df
                                         GD_MSG_RESOLVE_BRICK_FAIL,
3604df
                                         "resolve brick failed in restore");
3604df
@@ -4404,6 +4408,10 @@ glusterd_resolve_all_bricks (xlator_t  *this)
3604df
                                          brick_list) {
3604df
                         ret = glusterd_resolve_brick (brickinfo);
3604df
                         if (ret) {
3604df
+                                gf_event (EVENT_BRICKPATH_RESOLVE_FAILED,
3604df
+                                          "peer=%s;volume=%s;brick=%s",
3604df
+                                          brickinfo->hostname, volinfo->volname,
3604df
+                                          brickinfo->path);
3604df
                                 gf_msg ("glusterd", GF_LOG_ERROR, 0,
3604df
                                         GD_MSG_RESOLVE_BRICK_FAIL,
3604df
                                         "resolve brick failed in restore");
3604df
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
3604df
index 8955994..98c0059 100644
3604df
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
3604df
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
3604df
@@ -2990,7 +2990,7 @@ glusterd_compare_friend_volume (dict_t *peer_data, int32_t count,
3604df
         *status = GLUSTERD_VOL_COMP_SCS;
3604df
 
3604df
 out:
3604df
-        if (ret) {
3604df
+        if (*status == GLUSTERD_VOL_COMP_RJT) {
3604df
                 gf_event (EVENT_COMPARE_FRIEND_VOLUME_FAILED, "volume=%s",
3604df
                           volinfo->volname);
3604df
         }
3604df
@@ -4136,10 +4136,7 @@ glusterd_import_friend_volume (dict_t *peer_data, size_t count)
3604df
         }
3604df
 
3604df
         if (glusterd_is_volume_started (new_volinfo)) {
3604df
-                if (glusterd_start_bricks (new_volinfo)) {
3604df
-                        gf_event (EVENT_BRICKS_START_FAILED, "volume=%s",
3604df
-                                  new_volinfo->volname);
3604df
-                }
3604df
+                (void) glusterd_start_bricks (new_volinfo);
3604df
                 if (glusterd_is_snapd_enabled (new_volinfo)) {
3604df
                         svc = &(new_volinfo->snapd.svc);
3604df
                         if (svc->manager (svc, new_volinfo,
3604df
@@ -5903,6 +5900,10 @@ glusterd_brick_stop (glusterd_volinfo_t *volinfo,
3604df
         if (gf_uuid_is_null (brickinfo->uuid)) {
3604df
                 ret = glusterd_resolve_brick (brickinfo);
3604df
                 if (ret) {
3604df
+                        gf_event (EVENT_BRICKPATH_RESOLVE_FAILED,
3604df
+                                  "peer=%s;volume=%s;brick=%s",
3604df
+                                  brickinfo->hostname, volinfo->volname,
3604df
+                                  brickinfo->path);
3604df
                         gf_msg (this->name, GF_LOG_ERROR, 0,
3604df
                                 GD_MSG_RESOLVE_BRICK_FAIL, FMTSTR_RESOLVE_BRICK,
3604df
                                 brickinfo->hostname, brickinfo->path);
3604df
-- 
3604df
2.9.3
3604df