Skip to content

Commit ff5a4f7

Browse files
committed
Stabilize metrics integration tests
Removes DropwizardMetricsIT, MicroProfileMetricsIT, MicrometerMetricsIT from parallelizable tests category, making them serial. `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 8d63f16 commit ff5a4f7

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)