You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Tharindu Kumara (JIRA)" <ji...@apache.org> on 2017/03/09 07:14:38 UTC

[jira] [Commented] (ZOOKEEPER-2715) Sessions Expire due to Network partitioning in Zookeeper

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-2715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15902595#comment-15902595 ] 

Tharindu Kumara commented on ZOOKEEPER-2715:
--------------------------------------------

The client code used for this test.

https://gist.github.com/tharindukumara/025c98ddbd406db34067a587c6d9533d

> Sessions Expire due to Network partitioning in Zookeeper 
> ---------------------------------------------------------
>
>                 Key: ZOOKEEPER-2715
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2715
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: c client
>    Affects Versions: 3.4.9
>            Reporter: Tharindu Kumara
>
> Recently, carried out a test to to find the behavior of clients when a 
> client is partitioned from the ensemble. 
> Here used a ensemble of 3 zookeeper servers called A, B and C. And quorum was set up like below. 
> A - Follower 
> B - Leader 
> C - Follower​ 
> A  <---> B <---> C 
>    \__________/ 
> And 3 clients are connected to ensemble like below. 
> C1 is connected A 
> C2 is connected B 
> C3 is connected C. 
> To remove the network link between B and C iptables utility is used. 
> command used: 
> iptables -I INPUT -s Server_B_IP -j DROP 
> iptables -I INPUT -s Server_C_IP -j DROP 
> After removing the link connections looks like below. 
> A  <----> B         C 
>    \___________/ 
> Simply there is no way to send any packets from from B to C and vice versa. But the connection exists between between B and C.
> Here What I noticed is that the client connected to Zookeeper Server "C", could not connect to the ensemble resulting a session expiration timeout. 
> For this experiment I used tickTime of 3000ms and client session expiration timeout of 45000ms. And tested with different combinations also. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)