summaryrefslogtreecommitdiffstats
path: root/cli
diff options
context:
space:
mode:
authorRaghavendra Bhat <raghavendra@redhat.com>2012-06-23 10:28:54 +0530
committerAnand Avati <avati@redhat.com>2012-07-02 11:09:13 -0700
commit4df765df74b4406c7cce90e66c4256e3850a8c5f (patch)
tree086a66c116b55cd58f025d4464a3ca732d734127 /cli
parent4df8241e740255744deea983f5e0c63ade202409 (diff)
glusterd, cli: handle uuid conflicts in probe gracefully
A commonly faced problem among glusterfs users is: after a fresh installation of glusterfs in a virtual machine, the VM image is cloned to make multiple instances of the server. This breaks glusterd because right after glusterfs installation on the first boot glusterd would have created the node UUID and this gets inherited into the clone. The result is wierd behavior at the time of peer probe where glusterd does not (yet) deal with UUID collisions in a user friendly way. With this patch the peer which got the probe request will compare the uuid of the machine which send the probe request with its own uuid and send the proper error to cli if the uuids are same. Change-Id: I091741ec863431fb6480a09a3f4c68a0906a3339 BUG: 811493 Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com> Reviewed-on: http://review.gluster.com/3612 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amarts@redhat.com> Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'cli')
-rw-r--r--cli/src/cli-rpc-ops.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c
index 492be4388..a40fd4829 100644
--- a/cli/src/cli-rpc-ops.c
+++ b/cli/src/cli-rpc-ops.c
@@ -129,8 +129,8 @@ gf_cli3_1_probe_cbk (struct rpc_req *req, struct iovec *iov,
break;
default:
snprintf (msg, sizeof (msg),
- "Probe returned with unknown errno %d",
- rsp.op_errno);
+ "Probe returned with unknown errno"
+ " %d", rsp.op_errno);
break;
}
}
@@ -168,7 +168,12 @@ gf_cli3_1_probe_cbk (struct rpc_req *req, struct iovec *iov,
"information on %s" ,
rsp.hostname);
break;
-
+ case GF_PROBE_SAME_UUID:
+ snprintf (msg, sizeof (msg),
+ "Peer uuid (host: %s) is"
+ "same as local uuid",
+ rsp.hostname);
+ break;
default:
snprintf (msg, sizeof (msg),
"Probe unsuccessful\nProbe "