[ https://issues.apache.org/jira/browse/ZOOKEEPER-2000?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Hongchao Deng updated ZOOKEEPER-2000: ------------------------------------- Assignee: Alexander Shraer (was: Hongchao Deng) > 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: Alexander Shraer > 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)