Ismael Juma created KAFKA-5238:
----------------------------------

             Summary: BrokerTopicMetrics can be recreated after topic is deleted
                 Key: KAFKA-5238
                 URL: https://issues.apache.org/jira/browse/KAFKA-5238
             Project: Kafka
          Issue Type: Bug
            Reporter: Ismael Juma


As part of KAFKA-3258, we added code to remove metrics during topic deletion. 
This works fine as long as there are no fetch requests in the purgatory. If 
there are, however, we'll recreate the metrics when we call 
`ReplicaManager.appendToLocalLog`.

This can be reproduced by updating 
MetricsTest.testBrokerTopicMetricsUnregisteredAfterDeletingTopic() in the 
following way:

{code}
@Test
  def testBrokerTopicMetricsUnregisteredAfterDeletingTopic() {
    val topic = "test-broker-topic-metric"
    AdminUtils.createTopic(zkUtils, topic, 2, 1)
    // Produce a few messages and consume them to create the metrics
    TestUtils.produceMessages(servers, topic, nMessages)
    TestUtils.consumeTopicRecords(servers, topic, nMessages)
    assertTrue("Topic metrics don't exist", topicMetricGroups(topic).nonEmpty)
    assertNotNull(BrokerTopicStats.getBrokerTopicStats(topic))
    AdminUtils.deleteTopic(zkUtils, topic)
    TestUtils.verifyTopicDeletion(zkUtils, topic, 1, servers)
    Thread.sleep(10000)
    assertEquals("Topic metrics exists after deleteTopic", Set.empty, 
topicMetricGroups(topic))
  }
{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to