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)