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

ASF GitHub Bot commented on KAFKA-3239:
---------------------------------------

GitHub user rajinisivaram opened a pull request:

    https://github.com/apache/kafka/pull/921

    KAFKA-3239: Synchronize removeTopic using controllerLock

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/rajinisivaram/kafka KAFKA-3239

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/kafka/pull/921.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #921
    
----
commit c69a8ccdbac2ff2e31154a6196a61b1ecfc41ca8
Author: Rajini Sivaram <rajinisiva...@googlemail.com>
Date:   2016-02-16T08:25:52Z

    KAFKA-3239: Synchronize removeTopic using controllerLock

----


> 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
>
> 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