[
https://issues.apache.org/jira/browse/KAFKA-21421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sean Quah updated KAFKA-21421:
------------------------------
Description:
Rows 1 and 2 appear under both Topic and Broker because \{{getTopicConfig}}
falls back to the cluster and broker-level configs, in
\{{ConfigurationControlManager.java:660-664}}.
h3. Topic configs
||#||Site||Config||Effect of a padded value||
|1|\{{ReplicationControlManager.java:2454}}|\{{min.insync.replicas}}|\{{NumberFormatException}}
makes the controller fail over, and the next controller hits the same value.|
|2|\{{ConfigurationControlManager.java:798}}|\{{unclean.leader.election.enable}}|\{{"
true"}} is read as \{{false}}, so the controller silently skips unclean
election.|
|3|\{{LogConfig.java:556}}|existing \{{remote.storage.enable}}|\{{" true"}} is
read as \{{false}}, so the checks for turning off remote storage are skipped.|
|7|\{{InternalTopicManager.java:324, 363, 389}}|\{{retention.ms}},
\{{min.compaction.lag.ms}} read back from the broker|Streams internal topic
validation throws.|
|8|\{{TopicCommand.java:315}}|\{{min.insync.replicas}} read back from the
broker|\{{\-\-under-min-isr-partitions}} and \{{\-\-at-min-isr-partitions}}
throw.|
h3. Broker configs (cluster default or per-broker)
||#||Site||Config||Effect of a padded value||
|1|\{{ReplicationControlManager.java:2454}}|\{{min.insync.replicas}}|The effect
is the same as for the topic config.|
|2|\{{ConfigurationControlManager.java:798}}|\{{unclean.leader.election.enable}}|The
effect is the same as for the topic config.|
|5|\{{GroupCoordinatorConfig.java:858}}|\{{group.consumer.assignment.interval.ms}},
\{{group.share.assignment.interval.ms}},
\{{group.streams.assignment.interval.ms}}|A parse failure blocks every dynamic
broker config update. A trailing space in server.properties also triggers it.|
|6|\{{ConfigHandler.scala:159, 161}}|\{{leader.replication.throttled.rate}},
\{{follower.replication.throttled.rate}},
\{{replica.alter.log.dirs.io.max.bytes.per.second}}|Replication quotas aren't
updated.|
h3. Group configs
||#||Site||Config||Effect of a padded value||
|4|\{{GroupConfig.java:959, 960, 989, 1021, 1048}}|int group configs, such as
\{{consumer.session.timeout.ms}}|Every broker throws, so the group's overrides
are never applied.|
h3. Streams client configs
||#||Site||Config||Effect of a padded value||
|7|\{{InternalTopicManager.java:327, 366}}|\{{topic.retention.ms}},
\{{topic.min.compaction.lag.ms}}|Streams internal topic validation throws.|
|9|\{{StreamsConfig.java:1978-1979}}|\{{topic.segment.bytes}},
\{{producer.batch.size}}|\{{StreamsConfig}} construction throws.|
|10|\{{TopologyConfig.java:312}}|\{{transactional.state.stores}}|\{{" true"}}
is read as \{{false}}.|
|11|\{{TimeWindowedDeserializer.java:117}}|\{{window.size.ms}}|The deserializer
throws.|
h3. Connect configs
||#||Site||Config||Effect of a padded value||
|12|\{{ConnectorConfig.java:391}}|\{{transforms.<alias>.negate}}|\{{" true"}}
is read as \{{false}}, so the predicate isn't negated.|
|13|\{{MirrorMakerConfig.java:111, 121}}|\{{emit.heartbeats.enabled}}|\{{"
true"}} is read as \{{false}}.|
|13|\{{DefaultReplicationPolicy.java:58}}|\{{replication.policy.internal.topic.separator.enabled}}|\{{"
true"}} is read as \{{false}}.|
Trimming in \{{ConfigurationControlManager}} would fix every Topic and Group
row, and rows 1, 2 and 6 under Broker. Row 5 and the Streams and Connect rows
read local or client config, so each of those sites needs its own fix.
was:
Rows 1 and 2 appear under both Topic and Broker because \{{getTopicConfig}}
falls back to the cluster and broker-level configs
(\{{ConfigurationControlManager.java:660-664}}).
h3. Topic configs
||#||Site||Config||Effect of a padded value||
|1|\{{ReplicationControlManager.java:2454}}|\{{min.insync.replicas}}|\{{NumberFormatException}}
makes the controller fail over, and the next controller hits the same value.|
|2|\{{ConfigurationControlManager.java:798}}|\{{unclean.leader.election.enable}}|\{{"
true"}} is read as \{{false}}, so the controller silently skips unclean
election.|
|3|\{{LogConfig.java:556}}|existing \{{remote.storage.enable}}|\{{" true"}} is
read as \{{false}}, so the checks for turning off remote storage are skipped.|
|7|\{{InternalTopicManager.java:324, 363, 389}}|\{{retention.ms}},
\{{min.compaction.lag.ms}} read back from the broker|Streams internal topic
validation throws.|
|8|\{{TopicCommand.java:315}}|\{{min.insync.replicas}} read back from the
broker|\{{--under-min-isr-partitions}} and \{{--at-min-isr-partitions}} throw.|
h3. Broker configs (cluster default or per-broker)
||#||Site||Config||Effect of a padded value||
|1|\{{ReplicationControlManager.java:2454}}|\{{min.insync.replicas}}|The effect
is the same as for the topic config.|
|2|\{{ConfigurationControlManager.java:798}}|\{{unclean.leader.election.enable}}|The
effect is the same as for the topic config.|
|5|\{{GroupCoordinatorConfig.java:858}}|\{{group.consumer.assignment.interval.ms}},
\{{group.share.assignment.interval.ms}},
\{{group.streams.assignment.interval.ms}}|A parse failure blocks every dynamic
broker config update. A trailing space in server.properties also triggers it.|
|6|\{{ConfigHandler.scala:159, 161}}|\{{leader.replication.throttled.rate}},
\{{follower.replication.throttled.rate}},
\{{replica.alter.log.dirs.io.max.bytes.per.second}}|Replication quotas aren't
updated.|
h3. Group configs
||#||Site||Config||Effect of a padded value||
|4|\{{GroupConfig.java:959, 960, 989, 1021, 1048}}|int group configs, such as
\{{consumer.session.timeout.ms}}|Every broker throws, so the group's overrides
are never applied.|
h3. Streams client configs
||#||Site||Config||Effect of a padded value||
|7|\{{InternalTopicManager.java:327, 366}}|\{{topic.retention.ms}},
\{{topic.min.compaction.lag.ms}}|Streams internal topic validation throws.|
|9|\{{StreamsConfig.java:1978-1979}}|\{{topic.segment.bytes}},
\{{producer.batch.size}}|\{{StreamsConfig}} construction throws.|
|10|\{{TopologyConfig.java:312}}|\{{transactional.state.stores}}|\{{" true"}}
is read as \{{false}}.|
|11|\{{TimeWindowedDeserializer.java:117}}|\{{window.size.ms}}|The deserializer
throws.|
h3. Connect configs
||#||Site||Config||Effect of a padded value||
|12|\{{ConnectorConfig.java:391}}|\{{transforms.<alias>.negate}}|\{{" true"}}
is read as \{{false}}, so the predicate isn't negated.|
|13|\{{MirrorMakerConfig.java:111, 121}}|\{{emit.heartbeats.enabled}}|\{{"
true"}} is read as \{{false}}.|
|13|\{{DefaultReplicationPolicy.java:58}}|\{{replication.policy.internal.topic.separator.enabled}}|\{{"
true"}} is read as \{{false}}.|
Trimming in \{{ConfigurationControlManager}} would fix every Topic and Group
row, and rows 1, 2 and 6 under Broker. Row 5 and the Streams and Connect rows
read local or client config, so each of those sites needs its own fix.
> ConfigDef.parse trims whitespace but raw config usage doesn't
> -------------------------------------------------------------
>
> Key: KAFKA-21421
> URL: https://issues.apache.org/jira/browse/KAFKA-21421
> Project: Kafka
> Issue Type: Bug
> Components: config, connect, group-coordinator, streams
> Reporter: Sean Quah
> Priority: Major
>
> Rows 1 and 2 appear under both Topic and Broker because \{{getTopicConfig}}
> falls back to the cluster and broker-level configs, in
> \{{ConfigurationControlManager.java:660-664}}.
> h3. Topic configs
> ||#||Site||Config||Effect of a padded value||
> |1|\{{ReplicationControlManager.java:2454}}|\{{min.insync.replicas}}|\{{NumberFormatException}}
> makes the controller fail over, and the next controller hits the same value.|
> |2|\{{ConfigurationControlManager.java:798}}|\{{unclean.leader.election.enable}}|\{{"
> true"}} is read as \{{false}}, so the controller silently skips unclean
> election.|
> |3|\{{LogConfig.java:556}}|existing \{{remote.storage.enable}}|\{{" true"}}
> is read as \{{false}}, so the checks for turning off remote storage are
> skipped.|
> |7|\{{InternalTopicManager.java:324, 363, 389}}|\{{retention.ms}},
> \{{min.compaction.lag.ms}} read back from the broker|Streams internal topic
> validation throws.|
> |8|\{{TopicCommand.java:315}}|\{{min.insync.replicas}} read back from the
> broker|\{{\-\-under-min-isr-partitions}} and \{{\-\-at-min-isr-partitions}}
> throw.|
> h3. Broker configs (cluster default or per-broker)
> ||#||Site||Config||Effect of a padded value||
> |1|\{{ReplicationControlManager.java:2454}}|\{{min.insync.replicas}}|The
> effect is the same as for the topic config.|
> |2|\{{ConfigurationControlManager.java:798}}|\{{unclean.leader.election.enable}}|The
> effect is the same as for the topic config.|
> |5|\{{GroupCoordinatorConfig.java:858}}|\{{group.consumer.assignment.interval.ms}},
> \{{group.share.assignment.interval.ms}},
> \{{group.streams.assignment.interval.ms}}|A parse failure blocks every
> dynamic broker config update. A trailing space in server.properties also
> triggers it.|
> |6|\{{ConfigHandler.scala:159, 161}}|\{{leader.replication.throttled.rate}},
> \{{follower.replication.throttled.rate}},
> \{{replica.alter.log.dirs.io.max.bytes.per.second}}|Replication quotas aren't
> updated.|
> h3. Group configs
> ||#||Site||Config||Effect of a padded value||
> |4|\{{GroupConfig.java:959, 960, 989, 1021, 1048}}|int group configs, such as
> \{{consumer.session.timeout.ms}}|Every broker throws, so the group's
> overrides are never applied.|
> h3. Streams client configs
> ||#||Site||Config||Effect of a padded value||
> |7|\{{InternalTopicManager.java:327, 366}}|\{{topic.retention.ms}},
> \{{topic.min.compaction.lag.ms}}|Streams internal topic validation throws.|
> |9|\{{StreamsConfig.java:1978-1979}}|\{{topic.segment.bytes}},
> \{{producer.batch.size}}|\{{StreamsConfig}} construction throws.|
> |10|\{{TopologyConfig.java:312}}|\{{transactional.state.stores}}|\{{" true"}}
> is read as \{{false}}.|
> |11|\{{TimeWindowedDeserializer.java:117}}|\{{window.size.ms}}|The
> deserializer throws.|
> h3. Connect configs
> ||#||Site||Config||Effect of a padded value||
> |12|\{{ConnectorConfig.java:391}}|\{{transforms.<alias>.negate}}|\{{" true"}}
> is read as \{{false}}, so the predicate isn't negated.|
> |13|\{{MirrorMakerConfig.java:111, 121}}|\{{emit.heartbeats.enabled}}|\{{"
> true"}} is read as \{{false}}.|
> |13|\{{DefaultReplicationPolicy.java:58}}|\{{replication.policy.internal.topic.separator.enabled}}|\{{"
> true"}} is read as \{{false}}.|
> Trimming in \{{ConfigurationControlManager}} would fix every Topic and Group
> row, and rows 1, 2 and 6 under Broker. Row 5 and the Streams and Connect rows
> read local or client config, so each of those sites needs its own fix.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)