You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Chia-Ping Tsai (Jira)" <ji...@apache.org> on 2020/12/11 03:15:00 UTC
[jira] [Resolved] (KAFKA-9786) fix flaky
MetricsTest.testGeneralBrokerTopicMetricsAreGreedilyRegistered
[ https://issues.apache.org/jira/browse/KAFKA-9786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chia-Ping Tsai resolved KAFKA-9786.
-----------------------------------
Resolution: Won't Fix
> fix flaky MetricsTest.testGeneralBrokerTopicMetricsAreGreedilyRegistered
> ------------------------------------------------------------------------
>
> Key: KAFKA-9786
> URL: https://issues.apache.org/jira/browse/KAFKA-9786
> Project: Kafka
> Issue Type: Test
> Reporter: Chia-Ping Tsai
> Assignee: Chia-Ping Tsai
> Priority: Minor
> Labels: flaky-test
>
> {code:java}
> java.lang.AssertionError: expected:<18> but was:<23>
> at org.junit.Assert.fail(Assert.java:89)
> at org.junit.Assert.failNotEquals(Assert.java:835)
> at org.junit.Assert.assertEquals(Assert.java:647)
> at org.junit.Assert.assertEquals(Assert.java:633)
> at kafka.metrics.MetricsTest.testGeneralBrokerTopicMetricsAreGreedilyRegistered(MetricsTest.scala:108)
> {code}
> As gradle may use same JVM to run multiples test (see https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html#org.gradle.api.tasks.testing.Test:forkEvery), the metrics from other tests can break MetricsTest.testGeneralBrokerTopicMetricsAreGreedilyRegistered.
> {code:scala}
> private def topicMetrics(topic: Option[String]): Set[String] = {
> val metricNames = KafkaYammerMetrics.defaultRegistry.allMetrics().keySet.asScala.map(_.getMBeanName)
> filterByTopicMetricRegex(metricNames, topic)
> }
> {code}
> MetricsTest.testGeneralBrokerTopicMetricsAreGreedilyRegistered is not captured by QA since the test which leaves orphan metrics in JVM is ReplicaManagerTest and it belongs to integrationTest. By contrast, MetricsTest is a part of unitTest. Hence, they are NOT executed by same JVM (since they are NOT in the same task). MetricsTest.testGeneralBrokerTopicMetricsAreGreedilyRegistered fails frequently on my jenkins because my jenkins verify kafka by running "./gradlew clean core:test".
--
This message was sent by Atlassian Jira
(v8.3.4#803005)