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

Arshad Mohammad commented on ZOOKEEPER-2513:
--------------------------------------------

After ZOOKEEPER-2172 fix, there is no problem with majorChange = true scenario. 
# yes, transaction is not processed, but this does not cause any problem. 
After exception, follower enters into leader election phase, then registers 
itself with the leader and then syncs with the leader. While syncing with 
leader it receives the failed transaction in the DIFF message. So reconfig was 
processed before the exception and transaction's PROPOSAL and COMMIT are 
processed after the exception. 
#  Learner is able to continue where it left off in the process of syncing with 
the leader

> majorChange exceptions during leader sync
> -----------------------------------------
>
>                 Key: ZOOKEEPER-2513
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2513
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.5.2
>            Reporter: Alexander Shraer
>            Priority: Critical
>
> In Learner.java there are exceptions being thrown in case majorChange = true, 
> i.e., a reconfig is encountered in the stream of updates from the leader. 
> There may be two problems in the way such exceptions are thrown:
> 1. important actions, e.g., processTxn, will not be done if an exception is 
> thrown
> 2. its unclear that the learner will be able to continue where it left off in 
> the process of syncing with the leader, if that sync is interrupted by an 
> exception.
> This requires further investigation. Whereas similar code in Follower and 
> Observer is extensively tested, this code in Learner isn't tested as much. We 
> could build on the test case developed in ZOOKEEPER-2172 to make sure this 
> code works properly.



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

Reply via email to