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

Reply via email to