Disable replicationLag if pullReplicationFilter is enabled
Bug: Issue 408010451
Change-Id: I921cc752d15c0189c154ea0ccfea1bb01a786551
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
index 6beda51..7d76807 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
@@ -123,10 +123,10 @@
replicationLagEnabled =
memoize(
() ->
- lazyMultiSiteCfg
- .get()
- .getBoolean(REF_DATABASE, null, REPLICATION_LAG_ENABLED, true));
-
+ !pullReplicationFilterEnabled.get()
+ && lazyMultiSiteCfg
+ .get()
+ .getBoolean(REF_DATABASE, null, REPLICATION_LAG_ENABLED, true));
pushReplicationFilterEnabled =
memoize(
() ->
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index 253d8aa..75fc55b 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -115,7 +115,8 @@
updating the `refs/multi-site/version/*` to the _epoch_ timestamp in
milliseconds. Please note that the `replication-lag` REST-API is also
disabled if this setting is false.
- Defaults: true
+ Defaults: true unless `pullReplicationFilterEnabled` is enabled and the pull-replication plugin
+ is available, in which case replicationLag is always disabled.
```ref-database.replicationLagRefreshInterval```
: Enable the auto-refresh of the metrics to trace the auto-replication
diff --git a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetricsTest.java b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetricsTest.java
index 6a03a6c..191d7fd 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetricsTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetricsTest.java
@@ -57,6 +57,8 @@
@Before
public void setup() throws Exception {
+ Config multiSiteConfig = new Config();
+ multiSiteConfig.setBoolean("ref-database", null, "pullReplicationFilterEnabled", false);
replicationStatus =
new ReplicationStatus(
CacheBuilder.newBuilder().build(),
@@ -64,7 +66,8 @@
verLogger,
projectCache,
Executors.newScheduledThreadPool(1),
- new com.googlesource.gerrit.plugins.multisite.Configuration(new Config(), new Config()),
+ new com.googlesource.gerrit.plugins.multisite.Configuration(
+ multiSiteConfig, new Config()),
new DisabledMetricMaker());
metrics = new SubscriberMetrics(metricMaker, replicationStatus);
}