[ 
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)

Reply via email to