zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tharindu Kumara (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (ZOOKEEPER-2715) Sessions Expire due to Network partitioning in Zookeeper
Date Fri, 10 Mar 2017 05:38:38 GMT

     [ https://issues.apache.org/jira/browse/ZOOKEEPER-2715?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Tharindu Kumara updated ZOOKEEPER-2715:
---------------------------------------
    Description: 
Recently, carried out a test to to find the behavior of clients when a  zookeeper server is
isolated from the zookeeper leader.

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 
 I____________I

And 3 clients are connected to ensemble like below. 

C1 is connected A. Both C1 and A are in the same machine.
C2 is connected B. Both C2 and B are in the same machine.
C3 is connected C. Both C3 and C are in the same machine.

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 
 I________I

Simply there is no way to send any packets from zookeeper server  B to zookeeper server C
and vice versa. But the connection exists between between B and C. And also there is no way
to send any packets from  B to C3 and vice versa. But the connection exists between between
B and C3. 

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. 

  was:
Recently, carried out a test to to find the behavior of clients when a  zookeeper server is
isolated from the zookeeper leader.

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 
 I____________I

And 3 clients are connected to ensemble like below. 

C1 is connected A. Both C1 and A are in the same machine.
C2 is connected B. Both C2 and B are in the same machine.
C3 is connected C. Both C3 and C are in the same machine.

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 
 I________I

Simply there is no way to send any packets from  B to C and vice versa. But the connection
exists between between B and C. And also there is no way to send any packets from  B to C3
and vice versa. But the connection exists between between B and C3. 

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. 


> 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  zookeeper server
is isolated from the zookeeper leader.
> 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 
>  I____________I
> And 3 clients are connected to ensemble like below. 
> C1 is connected A. Both C1 and A are in the same machine.
> C2 is connected B. Both C2 and B are in the same machine.
> C3 is connected C. Both C3 and C are in the same machine.
> 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 
>  I________I
> Simply there is no way to send any packets from zookeeper server  B to zookeeper server
C and vice versa. But the connection exists between between B and C. And also there is no
way to send any packets from  B to C3 and vice versa. But the connection exists between between
B and C3. 
> 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)

Mime
View raw message