Skip to content

Commit 0f278dc

Browse files
Bouncheckdkropachev
authored andcommitted
Stabilize metrics integration tests
Removes DropwizardMetricsIT, MicroProfileMetricsIT, MicrometerMetricsIT from parallelizable tests category, making them serial. Additionally enables MicrometerMetricsIT which was previously ignored due to flakiness. `should_evict_down_node_metrics_when_timeout_fires` in MetricsITBase relies on setting static field `MIN_EXPIRE_AFTER` in AbstractMetricUpdater and then setting it back to 5 minutes. Those three test classes inherit this test method and when they run concurrently it sometimes results in setting the minimal expire time back to 5 minutes before another test initializes its session with expire time set to 1 second. This can be evidenced by the appearance of lines like ``` c.d.o.d.i.c.m.AbstractMetricUpdater - [s6] Value too low for advanced.metrics.node.expire-after: PT1S. Forcing to PT5M instead. ``` whenever that method fails. It does not appear when the test passes (due to lucky schedule). Making those tests serial seems to be the simplest solution.
1 parent b681949 commit 0f278dc

File tree

3 files changed

+6
-11
lines changed

3 files changed

+6
-11
lines changed

integration-tests/src/test/java/com/datastax/oss/driver/core/metrics/DropwizardMetricsIT.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,16 @@
3232
import com.datastax.oss.driver.api.core.metrics.DefaultSessionMetric;
3333
import com.datastax.oss.driver.api.core.metrics.Metrics;
3434
import com.datastax.oss.driver.api.testinfra.simulacron.SimulacronRule;
35-
import com.datastax.oss.driver.categories.ParallelizableTests;
3635
import com.datastax.oss.driver.internal.core.context.InternalDriverContext;
3736
import com.datastax.oss.driver.internal.core.metrics.MetricId;
3837
import com.datastax.oss.driver.internal.core.metrics.MetricIdGenerator;
3938
import com.datastax.oss.simulacron.common.cluster.ClusterSpec;
4039
import java.util.ArrayList;
4140
import java.util.List;
4241
import org.junit.ClassRule;
43-
import org.junit.experimental.categories.Category;
4442

45-
@Category(ParallelizableTests.class)
43+
// Not parallelizable because of unsynchronized concurrent access to the
44+
// AbstractMetricUpdater.MIN_EXPIRE_AFTER
4645
public class DropwizardMetricsIT extends MetricsITBase {
4746

4847
@ClassRule

integration-tests/src/test/java/com/datastax/oss/driver/metrics/micrometer/MicrometerMetricsIT.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import com.datastax.oss.driver.api.core.metrics.DefaultNodeMetric;
2626
import com.datastax.oss.driver.api.core.metrics.DefaultSessionMetric;
2727
import com.datastax.oss.driver.api.testinfra.simulacron.SimulacronRule;
28-
import com.datastax.oss.driver.categories.ParallelizableTests;
2928
import com.datastax.oss.driver.core.metrics.MetricsITBase;
3029
import com.datastax.oss.driver.internal.core.context.InternalDriverContext;
3130
import com.datastax.oss.driver.internal.core.metrics.MetricId;
@@ -40,11 +39,9 @@
4039
import io.micrometer.core.instrument.Timer;
4140
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
4241
import org.junit.ClassRule;
43-
import org.junit.Ignore;
44-
import org.junit.experimental.categories.Category;
4542

46-
@Ignore("@IntegrationTestDisabledFlaky")
47-
@Category(ParallelizableTests.class)
43+
// Not parallelizable because of unsynchronized concurrent access to the
44+
// AbstractMetricUpdater.MIN_EXPIRE_AFTER
4845
public class MicrometerMetricsIT extends MetricsITBase {
4946

5047
@ClassRule

integration-tests/src/test/java/com/datastax/oss/driver/metrics/microprofile/MicroProfileMetricsIT.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import com.datastax.oss.driver.api.core.metrics.DefaultNodeMetric;
2626
import com.datastax.oss.driver.api.core.metrics.DefaultSessionMetric;
2727
import com.datastax.oss.driver.api.testinfra.simulacron.SimulacronRule;
28-
import com.datastax.oss.driver.categories.ParallelizableTests;
2928
import com.datastax.oss.driver.core.metrics.MetricsITBase;
3029
import com.datastax.oss.driver.internal.core.context.InternalDriverContext;
3130
import com.datastax.oss.driver.internal.core.metrics.MetricId;
@@ -44,9 +43,9 @@
4443
import org.eclipse.microprofile.metrics.Tag;
4544
import org.eclipse.microprofile.metrics.Timer;
4645
import org.junit.ClassRule;
47-
import org.junit.experimental.categories.Category;
4846

49-
@Category(ParallelizableTests.class)
47+
// Not parallelizable because of unsynchronized concurrent access to the
48+
// AbstractMetricUpdater.MIN_EXPIRE_AFTER
5049
public class MicroProfileMetricsIT extends MetricsITBase {
5150

5251
@ClassRule

0 commit comments

Comments
 (0)