KAFKA-13407: Always start controller when broker wins election #11476
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add a call to
onControllerFailover
into code path whereelect
iscalled, and the broker discovers it has already been elected. We
found that by restarting the ZK leader we could occasionally trigger
this code path, and prior to this change it would not start a
controller failover. This left our Kafka cluster in a state where the
/controller
znode existed, and named the broker that had "won" thecontroller election, but in terms of runtime state: all the brokers
had resigned from being the controller. Without a running controller,
restarting brokers would typically cause partitions to become
under-replicated as the restarted brokers never received the
UpdateMetadata or LeaderAndISR requests required to correctly lead /
follow any of their replicas.
Also add some info level logging and more descriptive log messages for
the log lines that were helpful in tracking the controller failover.
proposed fix for https://issues.apache.org/jira/browse/KAFKA-13407
Co-authored-by: Tina Selenge tina.selenge@gmail.com
Co-authored-by: Adrian Preston prestona@uk.ibm.com
Co-authored-by: Edoardo Comar ecomar@euk.ibm.com.com
Committer Checklist (excluded from commit message)