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

Tom White updated HADOOP-9220:
------------------------------

    Attachment: HADOOP-9220.patch

The reason for this behaviour is because there can be multiple watchers 
registered for a given ZK client in ActiveStandbyElector. (The 
monitorLockNodeAsync() method creates a new watcher object for the existing ZK 
client.) 

This can cause multiple invocations of joinElectionInternal() for a single 
watch event, each of which will make a call to create the lock znode. The first 
call will cause the a transition to active, while subsequent ones will cause a 
transition to standby (in the isNodeExists clause of the  processResult() 
method). In a manual failover scenario the node will still transition to active 
again, since the other node has ceded from the election for 10s, but it's still 
an unnecessary transition that could be eliminated.

I did some manual testing with the attached patch, and the extra transition was 
avoided. I'll see if I can write a unit test for it.

                
> Unnecessary transition to standby in ActiveStandbyElector
> ---------------------------------------------------------
>
>                 Key: HADOOP-9220
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9220
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: ha
>            Reporter: Tom White
>            Assignee: Tom White
>         Attachments: HADOOP-9220.patch
>
>
> When performing a manual failover from one HA node to a second, under some 
> circumstances the second node will transition from standby -> active -> 
> standby -> active. This is with automatic failover enabled, so there is a ZK 
> cluster doing leader election.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to