Deleting a project that has no entry shouldn't cause a split brain
Attempt to delete project from Zookeeper shouldn't throw an exception
even if project doesn't exists in Zookeeper.
Bug: Issue 40014660
Change-Id: I97b4285fc5229dc6b26b7cdcb823b4f327add533
diff --git a/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java b/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java
index 0aa0c9f..db8f30a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java
@@ -30,6 +30,7 @@
import org.apache.curator.framework.recipes.atomic.DistributedAtomicValue;
import org.apache.curator.framework.recipes.locks.InterProcessMutex;
import org.apache.curator.framework.recipes.locks.Locker;
+import org.apache.zookeeper.KeeperException;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Ref;
@@ -89,6 +90,8 @@
public void remove(Project.NameKey project) throws GlobalRefDbSystemError {
try {
client.delete().deletingChildrenIfNeeded().forPath("/" + project);
+ } catch (KeeperException.NoNodeException e) {
+ logger.atWarning().log("Project '%s' not found in Zookeeper", project);
} catch (Exception e) {
throw new GlobalRefDbSystemError(
String.format("Not able to delete project '%s'", project), e);