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

Hongchao Deng updated ZOOKEEPER-2000:
-------------------------------------
    Description: 
Previous changes:
       
   testPortChange changes all ports and role of the server and thus causes 
existing clients to disconnect, while this wouldn't happen if only the client 
port changes. Need to fix it to only change client port and not all the other 
parameters and make sure that the clients don't disconnect, while new clients 
shouldn't be able to connect to the old port.

========
Later changes:

This is what I have figured out:

* Server (1) and (2) were followers, (3) was the leader.
* client connected to (1), did a reconfig().
* (1) and (2) formed a quorum, reconfig was successful, and returned.
* (3) still thinks he's the leader, so using LeaderZooKeeperServer.
* client connected to (3) did a sync(), and the sync didn't go through a
quorum. THE CLIENT WHO DID SYNC() GETS WRONG BEHAVIOR. There's a split
brain here for sync().
* Then (3) gradually moves to the new quorum config.

I'm proposing to change sync() to need quorum acks.

  was:          testPortChange changes all ports and role of the server and 
thus causes existing clients to disconnect, while this wouldn't happen if only 
the client port changes. Need to fix it to only change client port and not all 
the other parameters and make sure that the clients don't disconnect, while new 
clients shouldn't be able to connect to the old port.


> Fix ReconfigTest.testPortChange
> -------------------------------
>
>                 Key: ZOOKEEPER-2000
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2000
>             Project: ZooKeeper
>          Issue Type: Sub-task
>          Components: tests
>    Affects Versions: 3.5.0
>            Reporter: Alexander Shraer
>            Assignee: Hongchao Deng
>            Priority: Minor
>             Fix For: 3.5.1, 3.6.0
>
>         Attachments: ZOOKEEPER-2000.patch, ZOOKEEPER-2000.patch, 
> ZOOKEEPER-2000.patch
>
>
> Previous changes:
>        
>    testPortChange changes all ports and role of the server and thus causes 
> existing clients to disconnect, while this wouldn't happen if only the client 
> port changes. Need to fix it to only change client port and not all the other 
> parameters and make sure that the clients don't disconnect, while new clients 
> shouldn't be able to connect to the old port.
> ========
> Later changes:
> This is what I have figured out:
> * Server (1) and (2) were followers, (3) was the leader.
> * client connected to (1), did a reconfig().
> * (1) and (2) formed a quorum, reconfig was successful, and returned.
> * (3) still thinks he's the leader, so using LeaderZooKeeperServer.
> * client connected to (3) did a sync(), and the sync didn't go through a
> quorum. THE CLIENT WHO DID SYNC() GETS WRONG BEHAVIOR. There's a split
> brain here for sync().
> * Then (3) gradually moves to the new quorum config.
> I'm proposing to change sync() to need quorum acks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to