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