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

ASF GitHub Bot commented on ZOOKEEPER-2746:
-------------------------------------------

GitHub user hanm opened a pull request:

    https://github.com/apache/zookeeper/pull/213

    ZOOKEEPER-2746: remove the check on the new leader after a dynamic re…

    …config operation.
    
    This check might not always hold because the nominated leader could fail to 
lead the quorum during sync phase - for example if sync time out [when waiting 
for quorum 
ack](https://github.com/apache/zookeeper/blob/master/src/java/main/org/apache/zookeeper/server/quorum/Leader.java#L1232).
 I am thinking we should just remove this instead of fixing it because the 
nominated leader is not an interface level contract / guarantee but a best 
effort / implementation level details.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/hanm/zookeeper ZOOKEEPER-2746

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/zookeeper/pull/213.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #213
    
----
commit 9e367d6f46811233b4bac169f5abb58ff1777273
Author: Michael Han <[email protected]>
Date:   2017-04-04T23:41:09Z

    ZOOKEEPER-2746: remove the check on the new leader after a dynamic reconfig 
operation.

----


> Leader hand off during dynamic reconfig is a best effort, not a guarantee, 
> when none trivial changes happen on current leader.
> ------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2746
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2746
>             Project: ZooKeeper
>          Issue Type: Test
>    Affects Versions: 3.5.2
>            Reporter: Michael Han
>            Assignee: Michael Han
>
> When none trivial config change happens on the leader (e.g. port change, role 
> change) to minimize disruption of quorum we do leader hand off by having the 
> current leader nominate the next leader instead of kicking off a full leader 
> election.
> However this is a best effort and not a guarantee that the new leader of the 
> quorum will be the nominated leader: it is possible that the nominated leader 
> fail to establish the leadership during sync phase, which leads to new 
> election rounds and a different leader elected. 
> In ReconfigTest.testPortChange one check is the new leader after dynamic 
> reconfig of the current leader has to be a different leader; based on what 
> described earlier this is not always the case as the nominated leader might 
> fail to get a quorum to ack its leadership during sync phase. We could either 
> fixed the test by removing the check, or always guarantee that the new leader 
> after dynamic reconfig is the nominated leader (which does not make much 
> sense given the nominated leader also has a possibility to crash.).



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

Reply via email to