Details

    • Type: Sub-task Sub-task
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.4.0
    • Fix Version/s: 3.4.0, 3.5.0
    • Component/s: server
    • Labels:
      None
    • Release Note:
      Revision 1198053

      Description

      It is possible that a leader proposes an epoch e and a follower adopts it by setting acceptedEpoch to e but the leader itself hasn't yet done so.

      While I'm not sure this contradicts Zab (there is no description of where the leader actually sets its acceptedEpoch), it is very counter intuitive.

      The fix is to set acceptedEpoch in getEpochToPropose, i.e., before anyone LearnerHandler passes the getEpochToPropose barrier.

      The fix is done as part of ZK-1264

        Activity

        Alexander Shraer created issue -
        Alexander Shraer made changes -
        Field Original Value New Value
        Parent ZOOKEEPER-1264 [ 12529192 ]
        Issue Type Bug [ 1 ] Sub-task [ 7 ]
        Camille Fournier made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Release Note Revision 1198053
        Fix Version/s 3.5.0 [ 12316644 ]
        Resolution Fixed [ 1 ]
        Hide
        Hudson added a comment -

        Integrated in ZooKeeper-trunk #1357 (See https://builds.apache.org/job/ZooKeeper-trunk/1357/)
        ZOOKEEPER-1264. FollowerResyncConcurrencyTest failing intermittently.
        ZOOKEEPER-1282. Learner.java not following Zab 1.0 protocol - setCurrentEpoch should be done upon receipt of NEWLEADER (before acking it) and not upon receipt of UPTODATE.
        ZOOKEEPER-1291. AcceptedEpoch not updated at leader before it proposes the epoch to followers.

        camille : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1198053
        Files :

        • /zookeeper/trunk/CHANGES.txt
        • /zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Leader.java
        • /zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Learner.java
        • /zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java
        • /zookeeper/trunk/src/java/test/org/apache/zookeeper/test/FollowerResyncConcurrencyTest.java
        Show
        Hudson added a comment - Integrated in ZooKeeper-trunk #1357 (See https://builds.apache.org/job/ZooKeeper-trunk/1357/ ) ZOOKEEPER-1264 . FollowerResyncConcurrencyTest failing intermittently. ZOOKEEPER-1282 . Learner.java not following Zab 1.0 protocol - setCurrentEpoch should be done upon receipt of NEWLEADER (before acking it) and not upon receipt of UPTODATE. ZOOKEEPER-1291 . AcceptedEpoch not updated at leader before it proposes the epoch to followers. camille : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1198053 Files : /zookeeper/trunk/CHANGES.txt /zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Leader.java /zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Learner.java /zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java /zookeeper/trunk/src/java/test/org/apache/zookeeper/test/FollowerResyncConcurrencyTest.java
        Mahadev konar made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        57m 26s 1 Camille Fournier 05/Nov/11 20:59
        Resolved Resolved Closed Closed
        17d 22h 23m 1 Mahadev konar 23/Nov/11 19:22

          People

          • Assignee:
            Alexander Shraer
            Reporter:
            Alexander Shraer
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development