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

Camille Fournier commented on ZOOKEEPER-1036:
---------------------------------------------

LearnerHandler will not even try to handle REVALIDATE until the leader has seen 
a quorum of acks for its last zxid. Until that point, the leader will not have 
started, and the handler thread will wait. See lines 367-371 in LearnerHandler: 
 /*
             * Wait until leader starts up
             */
            synchronized(leader.zk){
                while(!leader.zk.isRunning() && !this.isInterrupted()){
                    leader.zk.wait(20);
                }
            }


This also means you won't get a NPE because we don't set running to be true 
until the end of the startup call, which creates the session tracker.

> send UPTODATE to follower until a quorum of servers synced with leader
> ----------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1036
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1036
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>            Reporter: jiangwen wei
>
> 1. current process
> when leader fail, a new leader will be elected, followers will sync with the
> new leader.
> After synced, leader send UPTODATE to follower.
> 2. a corner case
> but there is a corner case, things will go wrong.
> suppose message M only exists on leader, after a follower synced with
> leader, the client connected to the follower will see M.
> but it only exists on two servers, not on a quorum of servers. If the new
> leader and the follower failed, message M is lost, but M is already seen by
> client.
> 3. one solution
> So I think UPTODATE  can be sent to follower only when a quorum of server
> synced with the leader.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to