[ https://issues.apache.org/jira/browse/KAFKA-9786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chia-Ping Tsai updated KAFKA-9786: ---------------------------------- Description: {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". was: {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 guy who 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". > 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 > > {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)