You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Gwen Shapira (JIRA)" <ji...@apache.org> on 2015/09/28 23:42:05 UTC

[jira] [Resolved] (KAFKA-2585) ConsoleConsumer should not hang infinitely upon exception

     [ https://issues.apache.org/jira/browse/KAFKA-2585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gwen Shapira resolved KAFKA-2585.
---------------------------------
       Resolution: Fixed
    Fix Version/s: 0.9.0.0

Issue resolved by pull request 247
[https://github.com/apache/kafka/pull/247]

> ConsoleConsumer should not hang infinitely upon exception
> ---------------------------------------------------------
>
>                 Key: KAFKA-2585
>                 URL: https://issues.apache.org/jira/browse/KAFKA-2585
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Dong Lin
>            Assignee: Dong Lin
>             Fix For: 0.9.0.0
>
>
> Due to imcompatibility beween Java 1.7 and Java 1.8, if Kafka ConsoleConsumer was compiled by Java 1.8 but run by Java 1.7, and if ConsoleConsumer has consumer.timeout.ms in the consumer.properties, then when it timesout, it will throw the following exception and hang infinitely.
> This will cause problem for e.g. Ducktape system test, which currently runs consumer with Java 1.7 and waits for consumer to timeout. This bug causes the Ducktape to hang for a long time.
> To prevent ConsoleConsumer to hang in case of such exception, we can wrap try/catch around run() and do System.exit(0) at the end of main() in ConsoleConsumer.
> [2015-09-28 05:41:31,499] ERROR Error processing message, stopping consumer:  (kafka.tools.ConsoleConsumer$)
> kafka.consumer.ConsumerTimeoutException
> 	at kafka.consumer.ConsumerIterator.makeNext(ConsumerIterator.scala:69)
> 	at kafka.consumer.ConsumerIterator.makeNext(ConsumerIterator.scala:33)
> 	at kafka.utils.IteratorTemplate.maybeComputeNext(IteratorTemplate.scala:66)
> 	at kafka.utils.IteratorTemplate.hasNext(IteratorTemplate.scala:58)
> 	at kafka.utils.IteratorTemplate.next(IteratorTemplate.scala:38)
> 	at kafka.consumer.ConsumerIterator.next(ConsumerIterator.scala:46)
> 	at kafka.consumer.OldConsumer.receive(BaseConsumer.scala:70)
> 	at kafka.tools.ConsoleConsumer$.process(ConsoleConsumer.scala:94)
> 	at kafka.tools.ConsoleConsumer$.run(ConsoleConsumer.scala:57)
> 	at kafka.tools.ConsoleConsumer$.main(ConsoleConsumer.scala:41)
> 	at kafka.tools.ConsoleConsumer.main(ConsoleConsumer.scala)
> Processed a total of 78 messages
> Exception in thread "main" java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
> 	at kafka.utils.Pool.keys(Pool.scala:77)
> 	at kafka.consumer.FetchRequestAndResponseStatsRegistry$.removeConsumerFetchRequestAndResponseStats(FetchRequestAndResponseStats.scala:69)
> 	at kafka.metrics.KafkaMetricsGroup$.removeAllConsumerMetrics(KafkaMetricsGroup.scala:189)
> 	at kafka.consumer.ZookeeperConsumerConnector.shutdown(ZookeeperConsumerConnector.scala:202)
> 	at kafka.consumer.OldConsumer.stop(BaseConsumer.scala:75)
> 	at kafka.tools.ConsoleConsumer$.process(ConsoleConsumer.scala:98)
> 	at kafka.tools.ConsoleConsumer$.run(ConsoleConsumer.scala:57)
> 	at kafka.tools.ConsoleConsumer$.main(ConsoleConsumer.scala:41)
> 	at kafka.tools.ConsoleConsumer.main(ConsoleConsumer.scala)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)