[
https://issues.apache.org/jira/browse/ZOOKEEPER-2988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16384212#comment-16384212
]
ASF GitHub Bot commented on ZOOKEEPER-2988:
-------------------------------------------
Github user afine commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/476#discussion_r171970721
--- Diff:
src/java/test/org/apache/zookeeper/server/quorum/QuorumPeerMainTest.java ---
@@ -1012,4 +1012,113 @@ public void testFailedTxnAsPartOfQuorumLoss()
throws Exception {
Assert.assertNull("server " + i + " should not have /zk" +
leader, servers.zk[i].exists("/zk" + leader, false));
}
}
+
+ /**
+ * Verify that a node without the leader in its view will not attempt
to connect to the leader.
+ */
+ @Test
+ public void testLeaderOutOfView() throws Exception {
+ ClientBase.setupTestEnv();
+
+ Layout layout = new PatternLayout("%d{ISO8601} [,yid:%X{myid}] -
%5p [%t:%C{1}@%L] - %m%n");
--- End diff --
It would be great if we did not specify the pattern as a literal. Take a
look at some of the other tests and see if the way they get the patternlayout
could apply here (`testElectionFraud` for example).
> NPE triggered if server receives a vote for a server id not in their voting
> view
> --------------------------------------------------------------------------------
>
> Key: ZOOKEEPER-2988
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2988
> Project: ZooKeeper
> Issue Type: Bug
> Components: leaderElection
> Affects Versions: 3.5.3, 3.4.11
> Reporter: Brian Nixon
> Priority: Minor
>
> We've observed the following behavior in elections when a node is lagging
> behind the quorum in its view of the ensemble topology.
> - Node A is operating with node B in its voting view, but without view of
> node C.
> - B votes for C.
> - A then switches its vote to C, but throws a NPE when attempting to connect.
> This causes the QuorumPeer to spin up a Follower only to immediately have it
> shutdown by the exception.
> Ideally, A would not advertise a vote for a server that it will not follow.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)