[ https://issues.apache.org/jira/browse/KAFKA-19552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Maruthi updated KAFKA-19552: ---------------------------- Description: When broker config is set to enable unclean leader election, unless active controller also has the config enabled, election isnt triggered unclean leader election never gets triggered because even though its enabled on the topic level, its disregarded as its not set "dynamically" looks like unclean.leader.election.enable=true sensitive=false synonyms=\{STATIC_BROKER_CONFIG:unclean.leader.election.enable=true, DEFAULT_CONFIG:unclean.leader.election.enable=false} [https://github.com/apache/kafka/blob/3.9.0/metadata/src/main/java/org/apache/kafka/controller/ConfigurationControlManager.java#L461] Looks like a valid order - this may be desired behavior in other cases but fails when some properties are set only on the "broker" nodes and not on "controller" nodes Proposal: should look at topic's current config(static/inherited) as well instead of(or at least before) looking at staticConfig of the node. Topic's current config would be brokers static config anyway Alternative: alert user somehow if staticConfigs arent matching between brokers and controllers- maybe very visible warning that configs should match in documentation to start with Workaround: set unclean.leader.election config in controller properties as well - but its unclear what other configs also need to be set/etc to avoid similar issues in other places was: When broker config is set to enable unclean leader election, unless active controller also has the config enabled, election isnt triggered unclean leader election never gets triggered because even though its enabled on the topic level, its disregarded as its not set "dynamically" looks like unclean.leader.election.enable=true sensitive=false synonyms=\{STATIC_BROKER_CONFIG:unclean.leader.election.enable=true, DEFAULT_CONFIG:unclean.leader.election.enable=false} [https://github.com/apache/kafka/blob/3.9.0/metadata/src/main/java/org/apache/kafka/controller/ConfigurationControlManager.java#L461] Looks like a valid order - this may be desired behavior in other cases but fails when some properties are set only on the "broker" nodes and not on "controller" nodes Proposal: should look at topic's current config(static/inherited) as well instead of(or at least before) looking at staticConfig of the node. Topic's current config would be brokers static config anyway Alternative: alert user somehow if staticConfigs arent matching between brokers and controllers Workaround: set unclean.leader.election config in controller properties as well - but its unclear what other configs also need to be set/etc to avoid similar issues in other places > Unclean leader election fails due to precedence issue > ----------------------------------------------------- > > Key: KAFKA-19552 > URL: https://issues.apache.org/jira/browse/KAFKA-19552 > Project: Kafka > Issue Type: Bug > Components: controller > Affects Versions: 3.9.0 > Reporter: Maruthi > Priority: Critical > > When broker config is set to enable unclean leader election, unless active > controller also has the config enabled, election isnt triggered > unclean leader election never gets triggered because even though its enabled > on the topic level, its disregarded as its not set "dynamically" looks like > unclean.leader.election.enable=true sensitive=false > synonyms=\{STATIC_BROKER_CONFIG:unclean.leader.election.enable=true, > DEFAULT_CONFIG:unclean.leader.election.enable=false} > [https://github.com/apache/kafka/blob/3.9.0/metadata/src/main/java/org/apache/kafka/controller/ConfigurationControlManager.java#L461] > Looks like a valid order - this may be desired behavior in other cases but > fails when some properties are set only on the "broker" nodes and not on > "controller" nodes > > Proposal: should look at topic's current config(static/inherited) as well > instead of(or at least before) looking at staticConfig of the node. Topic's > current config would be brokers static config anyway > Alternative: alert user somehow if staticConfigs arent matching between > brokers and controllers- maybe very visible warning that configs should match > in documentation to start with > Workaround: set unclean.leader.election config in controller properties as > well - but its unclear what other configs also need to be set/etc to avoid > similar issues in other places -- This message was sent by Atlassian Jira (v8.20.10#820010)