Aman Harish Gandhi created KAFKA-15266:
------------------------------------------

             Summary: Log configs ignore static configs set non primary synonyms
                 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


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)

Reply via email to