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

Ismael Juma commented on KAFKA-3239:
------------------------------------

[~rsivaram], the only usage of `removeTopic` in the Kafka codebase is done with 
`controllerContext.controllerLock` acquired. The stacktrace you pasted it from 
StatsdReporter, which is perhaps not acquiring the lock?

> Timing issue in controller metrics on topic delete
> --------------------------------------------------
>
>                 Key: KAFKA-3239
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3239
>             Project: Kafka
>          Issue Type: Bug
>          Components: controller
>    Affects Versions: 0.9.0.0
>            Reporter: Rajini Sivaram
>            Assignee: Rajini Sivaram
>             Fix For: 0.9.1.0
>
>
> Noticed this exception in our logs:
> {quote}
> java.util.NoSuchElementException: key not found: [sometopic,0]
>         at scala.collection.MapLike$class.default(MapLike.scala:228)
>         at scala.collection.AbstractMap.default(Map.scala:59)
>         at scala.collection.mutable.HashMap.apply(HashMap.scala:65)
>         at 
> kafka.controller.KafkaController$$anon$3$$anonfun$value$2$$anonfun$apply$mcI$sp$2.apply(KafkaController.scala:209)
>         at 
> kafka.controller.KafkaController$$anon$3$$anonfun$value$2$$anonfun$apply$mcI$sp$2.apply(KafkaController.scala:208)
>         at 
> scala.collection.TraversableOnce$$anonfun$count$1.apply(TraversableOnce.scala:114)
>         at 
> scala.collection.TraversableOnce$$anonfun$count$1.apply(TraversableOnce.scala:113)
>         at 
> scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:99)
>         at 
> scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:99)
>         at 
> scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:230)
>         at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:40)
>         at scala.collection.mutable.HashMap.foreach(HashMap.scala:99)
>         at 
> scala.collection.TraversableOnce$class.count(TraversableOnce.scala:113)
>         at scala.collection.AbstractTraversable.count(Traversable.scala:104)
>         at 
> kafka.controller.KafkaController$$anon$3$$anonfun$value$2.apply$mcI$sp(KafkaController.scala:208)
>         at 
> kafka.controller.KafkaController$$anon$3$$anonfun$value$2.apply(KafkaController.scala:205)
>         at 
> kafka.controller.KafkaController$$anon$3$$anonfun$value$2.apply(KafkaController.scala:205)
>         at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:262)
>         at 
> kafka.controller.KafkaController$$anon$3.value(KafkaController.scala:204)
>         at 
> kafka.controller.KafkaController$$anon$3.value(KafkaController.scala:202)
>         at 
> com.airbnb.metrics.StatsDReporter.processGauge(StatsDReporter.java:163)
>         at 
> com.airbnb.metrics.StatsDReporter.processGauge(StatsDReporter.java:37)
>         at com.yammer.metrics.core.Gauge.processWith(Gauge.java:28)
>         at 
> com.airbnb.metrics.StatsDReporter.sendAMetric(StatsDReporter.java:131)
>         at 
> com.airbnb.metrics.StatsDReporter.sendAllKafkaMetrics(StatsDReporter.java:119)
>         at com.airbnb.metrics.StatsDReporter.run(StatsDReporter.java:85)
> {quote}
> The exception indicates that the topic was in 
> {{controllerContext.partitionReplicaAssignment}} but not in 
> {{controllerContext.partitionLeadershipInfo}}. This can occur during 
> {{KafkaController.removeTopic()}} since it is not synchronized.



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

Reply via email to