[ https://issues.apache.org/jira/browse/KAFKA-3096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16007840#comment-16007840 ]
ASF GitHub Bot commented on KAFKA-3096: --------------------------------------- GitHub user ijuma opened a pull request: https://github.com/apache/kafka/pull/3031 MINOR: Fix bug in `waitUntilLeaderIsElectedOrChanged` and simplify result type Also disable a couple of tests that were passing incorrectly until KAFKA-3096 is fixed. The bug was for the following case: `leader.isDefined && oldLeaderOpt.isEmpty && newLeaderOpt.isDefined && newLeaderOpt.get != leader.get` We would consider it a successful election even though we should not. I also changed the result type as we never return `None` (we throw an exception instead). You can merge this pull request into a Git repository by running: $ git pull https://github.com/ijuma/kafka fix-wait-until-leader-is-elected Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/3031.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #3031 ---- commit 75a441087f4bbac973afe1198fd382df790552f6 Author: Ismael Juma <ism...@juma.me.uk> Date: 2016-01-08T16:48:47Z MINOR: Fix bug in `waitUntilLeaderIsElectedOrChanged` and simplify result type Also disable a couple of tests that were passing incorrectly until KAFKA-3096 is fixed. The bug was for the following case: `leader.isDefined && oldLeaderOpt.isEmpty && newLeaderOpt.isDefined && newLeaderOpt.get != leader.get` We would consider it a successful election even though we should not. I also changed the result type as we never return `None` (we throw an exception instead). ---- > Leader is not set to -1 when it is shutdown if followers are down > ----------------------------------------------------------------- > > Key: KAFKA-3096 > URL: https://issues.apache.org/jira/browse/KAFKA-3096 > Project: Kafka > Issue Type: Bug > Affects Versions: 0.9.0.0 > Reporter: Ismael Juma > Assignee: Ismael Juma > Labels: reliability > > Assuming a cluster with 2 brokers with unclear leader election disabled: > 1. Start brokers 0 and 1 > 2. Perform partition assignment > 3. Broker 0 is elected leader > 4. Produce message and wait until metadata is propagated > 6. Shutdown follower > 7. Produce message > 8. Shutdown leader > 9. Start follower > 10. Wait for leader election > Expected: leader is -1 > Actual: leader is 0 > We have a test for this, but a bug in `waitUntilLeaderIsElectedOrChanged` > means that `newLeaderOpt` is not being checked. -- This message was sent by Atlassian JIRA (v6.3.15#6346)