[ https://issues.apache.org/jira/browse/KAFKA-4629?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15823725#comment-15823725 ]
Ismael Juma commented on KAFKA-4629: ------------------------------------ There are 2 points here: 1. What's the best way to do this kind of thing in tests? Kafka's own tests do something like the following in TestUtils: {code} def createTopic(zkUtils: ZkUtils, topic: String, numPartitions: Int = 1, replicationFactor: Int = 1, servers: Seq[KafkaServer], topicConfig: Properties = new Properties) : scala.collection.immutable.Map[Int, Option[Int]] = { // create topic AdminUtils.createTopic(zkUtils, topic, numPartitions, replicationFactor, topicConfig) // wait until the update metadata request for new topic reaches all servers (0 until numPartitions).map { case i => TestUtils.waitUntilMetadataIsPropagated(servers, topic, i) i -> TestUtils.waitUntilLeaderIsElectedOrChanged(zkUtils, topic, i) }.toMap } {code} 2. The topic leak can happen outside of tests too. It would be good to fix that, if possible. I haven't looked at the code, but maybe we should check if the topic hasn't been queued for deletion when registering the metrics. > Per topic MBeans leak > --------------------- > > Key: KAFKA-4629 > URL: https://issues.apache.org/jira/browse/KAFKA-4629 > Project: Kafka > Issue Type: Bug > Affects Versions: 0.10.0.1 > Reporter: Alberto Forti > Priority: Minor > > Hi, > In our application we create and delete topics dynamically. Most of the times > when a topic is deleted the related MBeans are not deleted. Example of MBean: > kafka.server:type=BrokerTopicMetrics,name=TotalProduceRequestsPerSec,topic=dw_06b5f828-e452-4e22-89c9-67849a65603d > Also, deleting a topic often produces (what I think is) noise in the logs at > WARN level. One example is: > WARN PartitionStateMachine$DeleteTopicsListener:83 - [DeleteTopicsListener > on 1]: Ignoring request to delete non-existing topics > dw_fe8ff14b-aa9b-4f24-9bc1-6fbce15d20d2 > Easy reproducible with a basic Kafka cluster with two brokers, just create > and delete topics few times. Sometimes the MBeans for the topic are deleted > and sometimes are not. > I'm creating and deleting topics using the AdminUtils class in the Java API: > AdminUtils.deleteTopic(zkUtils, topicName); > AdminUtils.createTopic(zkUtils, topicName, partitions, replicationFactor, > topicConfiguration, kafka.admin.RackAwareMode.Enforced$.MODULE$); > Kafka version: 0.10.0.1 (haven't tried other versions) > Thanks, > Alberto -- This message was sent by Atlassian JIRA (v6.3.4#6332)