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

ASF GitHub Bot commented on ZOOKEEPER-2953:
-------------------------------------------

Github user anmolnar commented on a diff in the pull request:

    https://github.com/apache/zookeeper/pull/433#discussion_r157001258
  
    --- Diff: 
src/java/test/org/apache/zookeeper/server/quorum/QuorumPeerMainTest.java ---
    @@ -335,6 +336,100 @@ public void testHighestZxidJoinLate() throws 
Exception {
                     output[0], 2);
         }
     
    +    /**
    +     * This test validates that if a quorum member determines that it is 
leader without the support of the rest of the
    +     * quorum (the other members do not believe it to be the leader) it 
will stop attempting to lead and become a follower.
    +     *
    +     * @throws IOException
    +     * @throws InterruptedException
    +     */
    +    @Test
    +    public void testElectionFraud() throws IOException, 
InterruptedException {
    +        // capture QuorumPeer logging
    +        Layout layout = 
Logger.getRootLogger().getAppender("CONSOLE").getLayout();
    +        ByteArrayOutputStream os = new ByteArrayOutputStream();
    +        WriterAppender appender = new WriterAppender(layout, os);
    +        appender.setThreshold(Level.INFO);
    +        Logger qlogger = Logger.getLogger(QuorumPeer.class);
    +        qlogger.addAppender(appender);
    +
    +        int numServers = 3;
    --- End diff --
    
    Please use the global field.


> Flaky Test: testNoLogBeforeLeaderEstablishment
> ----------------------------------------------
>
>                 Key: ZOOKEEPER-2953
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2953
>             Project: ZooKeeper
>          Issue Type: Bug
>    Affects Versions: 3.5.3, 3.4.11, 3.6.0
>            Reporter: Abraham Fine
>            Assignee: Abraham Fine
>
> testNoLogBeforeLeaderEstablishment has been flaky on 3.4, 3.5, and master for 
> quite awhile. My understanding is that the purpose of the test is to make 
> sure that a server receives support from the quorum before changing the epoch 
> and acting as leader. 
> There are a couple issues with the test in its current state. First, the 
> assertions the test makes are not always true. It is possible, if the 
> zookeeper database is not cleared, for a follower to be ahead of a leader 
> when the quorum is shutdown. That follower will then likely become leader 
> when the quorum is restarted. This is the cause of the flaky behavior. 
> Second, the test does not appear to create the conditions it wants to test 
> for. Since, ZOOKEEPER-335 (specifically the ZOOKEEPER-1081 subtask) we take 
> the epoch into consideration in {{FastLeaderElection}} so the test no longer 
> "believes it is the leader once it recovers".
> After discussing the issue offline with [~phunt] we decided it would still be 
> valuable to test the situation where a server is elected leader without the 
> support of the quorum. So I removed {{testNoLogBeforeLeaderEstablishment}} 
> and created a new test called {{testElectionFraud}}.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to