[sheepdog] [PATCH] zookeeper: explecitly ask users to wait to restart sheep

Liu Yuan namei.unix at gmail.com
Fri Jan 10 12:04:01 CET 2014


Not every users is zookeeper guru, so we should make log as friendly as possible

Signed-off-by: Liu Yuan <namei.unix at gmail.com>
---
 sheep/cluster/zookeeper.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/sheep/cluster/zookeeper.c b/sheep/cluster/zookeeper.c
index b80d3c7..3f6c146 100644
--- a/sheep/cluster/zookeeper.c
+++ b/sheep/cluster/zookeeper.c
@@ -32,6 +32,8 @@
 #define MASTER_ZNONE BASE_ZNODE "/master"
 #define LOCK_ZNODE BASE_ZNODE "/lock"
 
+static int zk_timeout = SESSION_TIMEOUT;
+
 /* structure for distributed lock */
 struct cluster_lock {
 	struct hlist_node hnode;
@@ -930,7 +932,8 @@ static int zk_join(const struct sd_node *myself,
 	snprintf(path, sizeof(path), MEMBER_ZNODE "/%s", node_to_str(myself));
 	rc = zk_node_exists(path);
 	if (rc == ZOK) {
-		sd_err("Previous zookeeper session exist, shoot myself.");
+		sd_err("Previous zookeeper session exist, shoot myself. Please "
+		       "wait for %d seconds to join me again.", zk_timeout);
 		exit(1);
 	}
 
@@ -1289,7 +1292,7 @@ static void zk_unlock(uint64_t lock_id)
 static int zk_init(const char *option)
 {
 	char *hosts, *to, *p;
-	int ret, timeout = SESSION_TIMEOUT;
+	int ret;
 
 	if (!option) {
 		sd_err("You must specify zookeeper servers.");
@@ -1298,7 +1301,7 @@ static int zk_init(const char *option)
 
 	hosts = strtok((char *)option, "=");
 	if ((to = strtok(NULL, "="))) {
-		if (sscanf(to, "%u", &timeout) != 1) {
+		if (sscanf(to, "%u", &zk_timeout) != 1) {
 			sd_err("Invalid paramter for timeout");
 			return -1;
 		}
@@ -1306,8 +1309,8 @@ static int zk_init(const char *option)
 		*--p = '\0';
 	}
 	sd_debug("version %d.%d.%d, address %s, timeout %d", ZOO_MAJOR_VERSION,
-		 ZOO_MINOR_VERSION, ZOO_PATCH_VERSION, hosts, timeout);
-	zhandle = zookeeper_init(hosts, zk_watcher, timeout, NULL, NULL, 0);
+		 ZOO_MINOR_VERSION, ZOO_PATCH_VERSION, hosts, zk_timeout);
+	zhandle = zookeeper_init(hosts, zk_watcher, zk_timeout, NULL, NULL, 0);
 	if (!zhandle) {
 		sd_err("failed to connect to zk server %s", option);
 		return -1;
-- 
1.8.1.2




More information about the sheepdog mailing list