[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