[
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, 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".
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, 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}
ReplicaManagerTest
BTW, the orphan metrics is left by ReplicaManagerTest.
> 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, 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".
--
This message was sent by Atlassian Jira
(v8.3.4#803005)