[
https://issues.apache.org/jira/browse/KAFKA-3417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Byron Ruth updated KAFKA-3417:
------------------------------
Description:
I ran into an error using a {{client.id}} with invalid characters (per the
[config
validator|https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/common/Config.scala#L25-L35]).
I was able to get that exact error using the {{kafka-console-consumer}}
script, presumably because I supplied a consumer properties file and it
validated prior to hitting the server. However, when I use a client library
(sarama for Go in this case), an error in the metrics subsystem is thrown
[here|https://github.com/apache/kafka/blob/977ebbe9bafb6c1a6e1be69620f745712118fe80/clients/src/main/java/org/apache/kafka/common/metrics/Metrics.java#L380].
The stacktrace is:
{code:title=stack.java}
[2016-03-17 17:43:47,342] ERROR [KafkaApi-0] error when handling request Name:
FetchRequest; Version: 0; CorrelationId: 2; ClientId: foo:bar; ReplicaId: -1;
MaxWait: 250 ms; MinBytes: 1 bytes; RequestInfo: [foo,0] ->
PartitionFetchInfo(0,32768) (kafka.server.KafkaApis)
org.apache.kafka.common.KafkaException: Error creating mbean attribute for
metricName :MetricName [name=throttle-time, group=Fetch, description=Tracking
average throttle-time per client, tags={client-id=foo:bar}]
at
org.apache.kafka.common.metrics.JmxReporter.addAttribute(JmxReporter.java:113)
at
org.apache.kafka.common.metrics.JmxReporter.metricChange(JmxReporter.java:76)
at
org.apache.kafka.common.metrics.Metrics.registerMetric(Metrics.java:288)
at org.apache.kafka.common.metrics.Sensor.add(Sensor.java:177)
at org.apache.kafka.common.metrics.Sensor.add(Sensor.java:162)
...
{code}
Assuming the cause os related to the invalid characters, when the request
header is decoded, the {{clientId}} should be validated prior to being used?
was:
I ran into an error using a {{client.id}} with invalid characters (per the
[config
validator|https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/common/Config.scala#L25-L35]).
I was able to get that exact error using the {{kafka-console-consumer}}
script, presumably because I supplied a consumer properties file and it
validated prior to hitting the server. However, when I use a client library
(sarama for Go in this case), an error in the metrics subsystem is thrown
[here|https://github.com/apache/kafka/blob/977ebbe9bafb6c1a6e1be69620f745712118fe80/clients/src/main/java/org/apache/kafka/common/metrics/Metrics.java#L380].
The stacktrace is:
{code=stack.java}
[2016-03-17 17:43:47,342] ERROR [KafkaApi-0] error when handling request Name:
FetchRequest; Version: 0; CorrelationId: 2; ClientId: foo:bar; ReplicaId: -1;
MaxWait: 250 ms; MinBytes: 1 bytes; RequestInfo: [foo,0] ->
PartitionFetchInfo(0,32768) (kafka.server.KafkaApis)
org.apache.kafka.common.KafkaException: Error creating mbean attribute for
metricName :MetricName [name=throttle-time, group=Fetch, description=Tracking
average throttle-time per client, tags={client-id=foo:bar}]
at
org.apache.kafka.common.metrics.JmxReporter.addAttribute(JmxReporter.java:113)
at
org.apache.kafka.common.metrics.JmxReporter.metricChange(JmxReporter.java:76)
at
org.apache.kafka.common.metrics.Metrics.registerMetric(Metrics.java:288)
at org.apache.kafka.common.metrics.Sensor.add(Sensor.java:177)
at org.apache.kafka.common.metrics.Sensor.add(Sensor.java:162)
...
{code}
Assuming the cause os related to the invalid characters, when the request
header is decoded, the {{clientId}} should be validated prior to being used?
> Invalid characters in config properties not be validated
> --------------------------------------------------------
>
> Key: KAFKA-3417
> URL: https://issues.apache.org/jira/browse/KAFKA-3417
> Project: Kafka
> Issue Type: Bug
> Components: config
> Affects Versions: 0.9.0.1
> Reporter: Byron Ruth
> Priority: Minor
>
> I ran into an error using a {{client.id}} with invalid characters (per the
> [config
> validator|https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/common/Config.scala#L25-L35]).
> I was able to get that exact error using the {{kafka-console-consumer}}
> script, presumably because I supplied a consumer properties file and it
> validated prior to hitting the server. However, when I use a client library
> (sarama for Go in this case), an error in the metrics subsystem is thrown
> [here|https://github.com/apache/kafka/blob/977ebbe9bafb6c1a6e1be69620f745712118fe80/clients/src/main/java/org/apache/kafka/common/metrics/Metrics.java#L380].
> The stacktrace is:
> {code:title=stack.java}
> [2016-03-17 17:43:47,342] ERROR [KafkaApi-0] error when handling request
> Name: FetchRequest; Version: 0; CorrelationId: 2; ClientId: foo:bar;
> ReplicaId: -1; MaxWait: 250 ms; MinBytes: 1 bytes; RequestInfo: [foo,0] ->
> PartitionFetchInfo(0,32768) (kafka.server.KafkaApis)
> org.apache.kafka.common.KafkaException: Error creating mbean attribute for
> metricName :MetricName [name=throttle-time, group=Fetch, description=Tracking
> average throttle-time per client, tags={client-id=foo:bar}]
> at
> org.apache.kafka.common.metrics.JmxReporter.addAttribute(JmxReporter.java:113)
> at
> org.apache.kafka.common.metrics.JmxReporter.metricChange(JmxReporter.java:76)
> at
> org.apache.kafka.common.metrics.Metrics.registerMetric(Metrics.java:288)
> at org.apache.kafka.common.metrics.Sensor.add(Sensor.java:177)
> at org.apache.kafka.common.metrics.Sensor.add(Sensor.java:162)
> ...
> {code}
> Assuming the cause os related to the invalid characters, when the request
> header is decoded, the {{clientId}} should be validated prior to being used?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)