Merge branch 'stable-3.10' into stable-3.11
* stable-3.10:
Log cancelled fetch collisions without reschedule
Add per-project shared lock to avoid fetch collisions
Revert "Prevent concurrent fetches on the same repository"
Revert "Extract QueueInfo into its own class"
Extract QueueInfo into its own class
Throw LockFailureException from filterAndLock interface
Expose new constructor for LockFailureException
Prevent concurrent fetches on the same repository
Change-Id: Id1aa990ab3a59f0232418738b084ea20c977d183
diff --git a/example-setup/broker/Dockerfile b/example-setup/broker/Dockerfile
index 8419c8e..9c09461 100644
--- a/example-setup/broker/Dockerfile
+++ b/example-setup/broker/Dockerfile
@@ -1,4 +1,4 @@
-FROM gerritcodereview/gerrit:3.10.0-almalinux9
+FROM gerritcodereview/gerrit:3.11.4
USER root
diff --git a/example-setup/http/Dockerfile b/example-setup/http/Dockerfile
index 4a824a7..18d88ec 100644
--- a/example-setup/http/Dockerfile
+++ b/example-setup/http/Dockerfile
@@ -1,4 +1,4 @@
-FROM gerritcodereview/gerrit:3.10.0-almalinux9
+FROM gerritcodereview/gerrit:3.11.4
USER root
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/FetchOne.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/FetchOne.java
index 7f69304..a43ce4a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/FetchOne.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/FetchOne.java
@@ -666,14 +666,14 @@
throws LockFailureException {
Set<String> refsNames =
refs.stream().map(FetchRefSpec::refName).collect(Collectors.toUnmodifiableSet());
+ Optional<ReplicationFetchFilter> maybeFilter = replicationFetchFilter();
Set<String> filteredRefNames;
- Optional<ReplicationFetchFilter> fetchFilter = replicationFetchFilter();
- if (fetchFilter.isPresent()) {
+ if (maybeFilter.isPresent()) {
if (lock) {
- fetchLocks = fetchFilter.get().filterAndLock(this.projectName.get(), refsNames);
+ fetchLocks = maybeFilter.get().filterAndLock(this.projectName.get(), refsNames);
filteredRefNames = fetchLocks.keySet();
} else {
- filteredRefNames = fetchFilter.get().filter(this.projectName.get(), refsNames);
+ filteredRefNames = maybeFilter.get().filter(this.projectName.get(), refsNames);
}
} else {
filteredRefNames = refsNames;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java
index 4f32f26..d4eb9b8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java
@@ -34,6 +34,7 @@
import com.google.inject.assistedinject.FactoryModuleBuilder;
import com.google.inject.internal.UniqueAnnotations;
import com.google.inject.name.Names;
+import com.googlesource.gerrit.plugins.deleteproject.cache.CacheDeleteHandler;
import com.googlesource.gerrit.plugins.replication.AutoReloadSecureCredentialsFactoryDecorator;
import com.googlesource.gerrit.plugins.replication.ConfigParser;
import com.googlesource.gerrit.plugins.replication.CredentialsFactory;
@@ -42,6 +43,7 @@
import com.googlesource.gerrit.plugins.replication.StartReplicationCapability;
import com.googlesource.gerrit.plugins.replication.pull.api.FetchApiCapability;
import com.googlesource.gerrit.plugins.replication.pull.api.FetchJob;
+import com.googlesource.gerrit.plugins.replication.pull.api.ProjectDeletionAction;
import com.googlesource.gerrit.plugins.replication.pull.auth.PullReplicationGroupModule;
import com.googlesource.gerrit.plugins.replication.pull.client.FetchApiClient;
import com.googlesource.gerrit.plugins.replication.pull.client.FetchRestApiClient;
@@ -68,6 +70,9 @@
@Override
protected void configure() {
+ bind(CacheDeleteHandler.class);
+ bind(ProjectDeletionAction.class).in(Scopes.SINGLETON);
+
bind(MetricMaker.class)
.annotatedWith(Names.named(ReplicationQueueMetrics.REPLICATION_QUEUE_METRICS))
.toInstance(pluginMetricMaker);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClient.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClient.java
index efc445d..c3bb378 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClient.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClient.java
@@ -70,7 +70,6 @@
public static final boolean FORCE_ASYNC = true;
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
- static String GERRIT_ADMIN_PROTOCOL_PREFIX = "gerrit+";
private static final Gson GSON =
new GsonBuilder().setFieldNamingPolicy(LOWER_CASE_WITH_UNDERSCORES).create();
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/health/PullReplicationTasksHealthCheckTest.java b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/health/PullReplicationTasksHealthCheckTest.java
index acba063..d06c9ea 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/pull/health/PullReplicationTasksHealthCheckTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/pull/health/PullReplicationTasksHealthCheckTest.java
@@ -38,6 +38,7 @@
import com.googlesource.gerrit.plugins.replication.api.ConfigResource;
import com.googlesource.gerrit.plugins.replication.pull.Source;
import com.googlesource.gerrit.plugins.replication.pull.SourcesCollection;
+import java.io.IOException;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
@@ -255,6 +256,9 @@
}
@Override
+ public void update(Config config) throws IOException {}
+
+ @Override
public String getVersion() {
return "";
}