diff options
| author | Gaurav Kumar Garg <garg.gaurav52@gmail.com> | 2015-08-11 18:17:31 +0530 | 
|---|---|---|
| committer | Atin Mukherjee <amukherj@redhat.com> | 2015-08-28 20:44:18 -0700 | 
| commit | 31a36dca20a976b143cc5c970e115d8d36df847a (patch) | |
| tree | 6b5ff53ff4860c80a7c07eb0705e301875e89eca | |
| parent | e55579bdb1d04cca29f3e87427de5f2a5ab5e9b4 (diff) | |
glusterd: probing a new node, which is part of another cluster should give error
If user try to add node to extant cluster using "gluster peer probe \
<ip/hostname>" command then command is failing but its not giving
proper cause of failure.
This fix will take control of proper error message during peer probe
with already extant cluster.
Change-Id: I4f993e78c0e1b3e061153b984ec5e9b70085aef5
BUG: 1252448
Signed-off-by: Gaurav Kumar Garg <ggarg@redhat.com>
Reviewed-on: http://review.gluster.org/11884
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handler.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index 085a63b4592..911bab9b4bc 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -4920,7 +4920,7 @@ glusterd_brick_rpc_notify (struct rpc_clnt *rpc, void *mydata,  }  int -glusterd_friend_remove_notify (glusterd_peerctx_t *peerctx) +glusterd_friend_remove_notify (glusterd_peerctx_t *peerctx, int32_t op_errno)  {          int                             ret = -1;          glusterd_friend_sm_event_t      *new_event = NULL; @@ -4956,7 +4956,7 @@ glusterd_friend_remove_notify (glusterd_peerctx_t *peerctx)                          goto out;                  } -                glusterd_xfer_cli_probe_resp (req, -1, ENOTCONN, errstr, +                glusterd_xfer_cli_probe_resp (req, -1, op_errno, errstr,                                                peerinfo->hostname,                                                peerinfo->port, dict); @@ -4983,6 +4983,7 @@ __glusterd_peer_rpc_notify (struct rpc_clnt *rpc, void *mydata,          xlator_t             *this        = NULL;          glusterd_conf_t      *conf        = NULL;          int                   ret         = 0; +        int32_t               op_errno    = ENOTCONN;          glusterd_peerinfo_t  *peerinfo    = NULL;          glusterd_peerctx_t   *peerctx     = NULL;          gf_boolean_t         quorum_action = _gf_false; @@ -5075,6 +5076,7 @@ __glusterd_peer_rpc_notify (struct rpc_clnt *rpc, void *mydata,                                  }                          } +                        op_errno = GF_PROBE_ANOTHER_CLUSTER;                          ret = 0;                  } @@ -5089,7 +5091,7 @@ __glusterd_peer_rpc_notify (struct rpc_clnt *rpc, void *mydata,                  *  fails, and notify cli. Happens only during probe.                  */                  if (peerinfo->state.state == GD_FRIEND_STATE_DEFAULT) { -                        glusterd_friend_remove_notify (peerctx); +                        glusterd_friend_remove_notify (peerctx, op_errno);                          goto out;                  }  | 
