[
https://issues.apache.org/jira/browse/KAFKA-15266?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aman Harish Gandhi updated KAFKA-15266:
---------------------------------------
Summary: Static configs set for non primary synonyms are ignored for Log
configs (was: Log configs ignore static configs set for non primary synonyms)
> Static configs set for non primary synonyms are ignored for Log configs
> -----------------------------------------------------------------------
>
> Key: KAFKA-15266
> URL: https://issues.apache.org/jira/browse/KAFKA-15266
> Project: Kafka
> Issue Type: Bug
> Components: core
> Affects Versions: 2.6.0
> Reporter: Aman Harish Gandhi
> Assignee: Aman Harish Gandhi
> Priority: Major
>
> In our server.properties we had the following config
> {code:java}
> log.retention.hours=48
> {code}
> We noticed that after running alter configs to update broker level config(for
> a config unrelated to retention) we were only deleting data after 7 days
> instead of the configured 2.
> The alterconfig we had ran was similar to this
> {code:java}
> sh kafka-config.sh --bootstrap-server localhost:9092 --alter --add-config
> "log.segment.bytes=500000"
> {code}
> Digging deeper the issue could be pin pointed to the reconfigure block of
> DynamicLogConfig inside DynamicBrokerConfig. Here we only look at the
> "primary" KafkaConfig synonym of the LogConfig and if it is not set then we
> remove the value set in default log config as well. This eventually leads to
> the retention.ms not being set in the default log config and that leads to
> the default value of 7 days being used. The value set in
> "log.retention.hours" is completely ignored in this case.
> Pasting the relevant code block here
> {code:java}
> newConfig.valuesFromThisConfig.forEach { (k, v) =>
> if (DynamicLogConfig.ReconfigurableConfigs.contains(k)) {
> DynamicLogConfig.KafkaConfigToLogConfigName.get(k).foreach { configName =>
> if (v == null)
> newBrokerDefaults.remove(configName)
> else
> newBrokerDefaults.put(configName, v.asInstanceOf[AnyRef])
> }
> }
> } {code}
> In the above block `DynamicLogConfig.ReconfigurableConfigs` contains only
> log.retention.ms. It does not contain the other synonyms like
> `log.retention.minutes` or `log.retention.hours`.
> This issue seems prevalent in all cases where there are more than 1
> KafkaConfig synonyms for the LogConfig.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)