On Wed, Feb 11, 2015 at 02:20:02PM +0800, Liu Yuan wrote:
> From: Liu Yuan <liuy...@cmss.chinamobile.com>
> 
> ZK server has its own session timeout range, so client's timeout value passed
> to server might be ignored and return the value it thinks proper.
> 
> From the documentation, the server range is
> 
> [tickTime * 2, tickTime * 20]
> 
> e.g, if tickTime is 2s, then the range will be [4s, 40s]. If we pass 1s as
> timeout to zk driver, we might be 4s returned.
> 
> This patch also change the zk server informatin printed as sd_info.
> 
> Signed-off-by: Liu Yuan <liuy...@cmss.chinamobile.com>
> ---
>  sheep/cluster/zookeeper.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/sheep/cluster/zookeeper.c b/sheep/cluster/zookeeper.c
> index 3248af2..b603d36 100644
> --- a/sheep/cluster/zookeeper.c
> +++ b/sheep/cluster/zookeeper.c
> @@ -1360,7 +1360,7 @@ static void zk_unlock(uint64_t lock_id)
>  static int zk_init(const char *option)
>  {
>       char *hosts, *to, *p;
> -     int ret, interval, retry = 0, max_retry;
> +     int ret, interval, retry = 0, max_retry, timeo;
>  
>       if (!option) {
>               sd_err("You must specify zookeeper servers.");
> @@ -1376,8 +1376,8 @@ static int zk_init(const char *option)
>               p = strstr(hosts, "timeout");
>               *--p = '\0';
>       }
> -     sd_debug("version %d.%d.%d, address %s, timeout %d", ZOO_MAJOR_VERSION,
> -              ZOO_MINOR_VERSION, ZOO_PATCH_VERSION, hosts, zk_timeout);
> +     sd_info("version %d.%d.%d, address %s, timeout %d", ZOO_MAJOR_VERSION,
> +             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 initialize zk server %s", option);
> @@ -1396,6 +1396,9 @@ static int zk_init(const char *option)
>               }
>       }
>  
> +     timeo = zoo_recv_timeout(zhandle);
> +     sd_info("the negociated session timeout is %d", timeo);
> +
>       uatomic_set_false(&stop);
>       uatomic_set_false(&is_master);
>       if (zk_queue_init() != ZOK)
> -- 
> 1.9.1
> 

Applied since it is a cosmetical patch, no functional change.

Yuan
-- 
sheepdog mailing list
sheepdog@lists.wpkg.org
https://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to