You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Neha Narkhede (JIRA)" <ji...@apache.org> on 2013/01/15 01:42:14 UTC

[jira] [Comment Edited] (KAFKA-697) ConsoleConsumer throws InvalidConfigException for "." in client id

    [ https://issues.apache.org/jira/browse/KAFKA-697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13553345#comment-13553345 ] 

Neha Narkhede edited comment on KAFKA-697 at 1/15/13 12:41 AM:
---------------------------------------------------------------

Unfortunately, this rule of not allowing a '.' in the clientid seems very restrictive. Here, it is useful for the client id to have the hostname of the fetcher thread. This allows us to look at the kafka request log, take that client id, go the box, take a thread dump and correlate the behavior of the thread from the thread dump and the log4j using the client id string. This saves time required for troubleshooting. Since we have this restriction, we will have to take the client IP from the request log, convert it to a hostname, construct the thread name from this information and then try to understand the thread behavior from the thread dump and log4j. Also, one needs to know Kafka code to figure out how to construct the thread name from all this information, which is even worse.

I think this is making things more difficult for us, which is a down side to disallowing '.' in the client id.
                
      was (Author: nehanarkhede):
    Unfortunately, this rule of not allowing a '.' in the clientid seems very restrictive. Here, it is useful for the client id to have the hostname of the fetcher thread. This allows us to look at the kafka request log, take that client id, go the box, take a thread dump and correlate the behavior of the thread from the thread dump and the log4j using the client id string. This saves time required for troubleshooting. Since we have this restriction, we will have to take the client IP from the request log, convert it to a hostname, construct the thread name from this information and then try to understand the thread behavior from the thread dump and log4j. 

I think this is making things more difficult for us, which is a down side to disallowing '.' in the client id.
                  
> ConsoleConsumer throws InvalidConfigException for "." in client id
> ------------------------------------------------------------------
>
>                 Key: KAFKA-697
>                 URL: https://issues.apache.org/jira/browse/KAFKA-697
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: John Fung
>         Attachments: kafka-697.patch
>
>
> kafka.common.InvalidConfigException: client.id console-consumer-16946-ConsumerFetcherThread-console-consumer-16946_XXXX-host18.corp-1358006528116-991e3f2d-0-1 is illegal, contains a character other than ASCII alphanumerics, _ and -
>         at kafka.common.Config$class.validateChars(Config.scala:32)
>         at kafka.consumer.ConsumerConfig$.validateChars(ConsumerConfig.scala:25)
>         at kafka.consumer.ConsumerConfig$.validateClientId(ConsumerConfig.scala:55)
>         at kafka.consumer.SimpleConsumer.<init>(SimpleConsumer.scala:88)
>         at kafka.server.AbstractFetcherThread.<init>(AbstractFetcherThread.scala:44)
>         at kafka.consumer.ConsumerFetcherThread.<init>(ConsumerFetcherThread.scala:27)
>         at kafka.consumer.ConsumerFetcherManager.createFetcherThread(ConsumerFetcherManager.scala:93)
>         at kafka.server.AbstractFetcherManager.addFetcher(AbstractFetcherManager.scala:44)
>         at kafka.consumer.ConsumerFetcherManager$$anon$1$$anonfun$doWork$3.apply(ConsumerFetcherManager.scala:75)
>         at kafka.consumer.ConsumerFetcherManager$$anon$1$$anonfun$doWork$3.apply(ConsumerFetcherManager.scala:72)
>         at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:80)
>         at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:80)
>         at scala.collection.Iterator$class.foreach(Iterator.scala:631)
>         at scala.collection.mutable.HashTable$$anon$1.foreach(HashTable.scala:161)
>         at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:194)
>         at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:39)
>         at scala.collection.mutable.HashMap.foreach(HashMap.scala:80)
>         at kafka.consumer.ConsumerFetcherManager$$anon$1.doWork(ConsumerFetcherManager.scala:72)
>         at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:50)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira