[ https://issues.apache.org/jira/browse/KAFKA-212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13156278#comment-13156278 ]
Neha Narkhede commented on KAFKA-212: ------------------------------------- the thread shutdown is guarded by a countdown latch. It will finish shutdown only after the thread exists the run() method. The problem here is that we keep older shutdown thread references in that list and end up calling start on those, which leads to the exception > IllegalThreadStateException in topic watcher for Kafka mirroring > ---------------------------------------------------------------- > > Key: KAFKA-212 > URL: https://issues.apache.org/jira/browse/KAFKA-212 > Project: Kafka > Issue Type: Bug > Reporter: Neha Narkhede > Assignee: Neha Narkhede > Fix For: 0.7.1 > > Attachments: KAFKA-212.patch > > > If the kafka mirroring embedded consumer receives a new topic watcher > notification, it runs into the following exception > [2011-11-23 02:49:15,612] FATAL java.lang.IllegalThreadStateException > (kafka.consumer.ZookeeperTopicEventWatcher) > [2011-11-23 02:49:15,612] FATAL java.lang.IllegalThreadStateException > at java.lang.Thread.start(Thread.java:595) > at > kafka.server.EmbeddedConsumer$$anonfun$startNewConsumerThreads$3.apply(KafkaServerStartable.scala:142) > at > kafka.server.EmbeddedConsumer$$anonfun$startNewConsumerThreads$3.apply(KafkaServerStartable.scala:142) > at > scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61) > at scala.collection.immutable.List.foreach(List.scala:45) > at > kafka.server.EmbeddedConsumer.startNewConsumerThreads(KafkaServerStartable.scala:142) > at > kafka.server.EmbeddedConsumer.handleTopicEvent(KafkaServerStartable.scala:109) > at > kafka.consumer.ZookeeperTopicEventWatcher$ZkTopicEventListener.liftedTree2$1(ZookeeperTopicEventWatcher.scala:83) > at > kafka.consumer.ZookeeperTopicEventWatcher$ZkTopicEventListener.handleChildChange(ZookeeperTopicEventWatcher.scala:78) > at org.I0Itec.zkclient.ZkClient$7.run(ZkClient.java:568) > at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71) > (kafka.consumer.ZookeeperTopicEventWatcher) > This happens since it tries to start a thread which has finished executing -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira