[
https://issues.apache.org/jira/browse/KAFKA-19148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18008542#comment-18008542
]
Calvin Liu commented on KAFKA-19148:
------------------------------------
[~emanuelmena] The error message is incorrect. It is fixed in
KAFKA-19212(included in 4.1).
The KRaft controller will generate the UNCLEAN election message after any
partition record changes. It does a simple check(which is wrong) by comparing
the new leader with the previous ISR
{code:java}
public static boolean electionWasClean(int newLeader, int[] prev_isr) {
return newLeader == NO_LEADER || Replicas.contains(prev_isr, newLeader);
} {code}
Since the new leader and ISR are changed in the same update, where the
prev_isr=(5, 7, 12) and the new leader is 0, the controller will log the
UNCLEAN message. However, because the replica 0 is actually a member of the ISR
already, it is a clean election.
> Potential Unclean Leader Election in KRaft Despite
> unclean.leader.election.enable=false
> ---------------------------------------------------------------------------------------
>
> Key: KAFKA-19148
> URL: https://issues.apache.org/jira/browse/KAFKA-19148
> Project: Kafka
> Issue Type: Bug
> Components: controller
> Affects Versions: 3.9.0, 4.0.0
> Reporter: Julian Bergner
> Assignee: Azhar Ahmed
> Priority: Critical
> Attachments: Readme_Kraft.md, Readme_Zookeeper.md,
> docker-compose_kraft.yml, docker-compose_zookeeper.yml
>
>
> *Issue Summary:*
> We're observing unclean leader election even though
> {{{}unclean.leader.election.enable=false{}}}.
> *Scenario:*
> During a partition reassignment, if we promote a non-ISR broker to leader and
> simultaneously remove the current leader from the ISR, Kafka still elects a
> new leader from outside the ISR. This behavior contradicts the expected
> behavior when unclean leader election is explicitly disabled.
> *Details:*
> * *Original ISR:* [1, 2]
> * *New ISR after reassignment:* [3, 2]
> *Kafka Versions Tested:*
> * Kafka 4.0.0 (KRaft mode)
> * Kafka 3.9.0 (Kraft mode)
> * Kafka 3.9.0 (Zookeeper mode)
> *Observation:*
> * The behaviour differs between the two modes.
> * In Kraft, unclean leader election occurred, which should not happen with
> the config set to {{{}false{}}}.
> * In Zookeeper no unclean leader election occurred.
> *Attachments:*
> Docker Compose files and reproduction steps for both:
> * Kafka 4.0.0 (KRaft)
> * Kafka 3.9.0 (Zookeeper)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)