From c87ccbdf27353c44bf80c9a4036fef1281b129f5 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Thu, 8 Jul 2021 14:58:31 +0200 Subject: Avoid checking and creating node If node is created between exists() and create() this will fail, just catch exception if node already exists and ignore it --- .../java/com/yahoo/vespa/config/server/zookeeper/ConfigCurator.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'configserver') diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ConfigCurator.java b/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ConfigCurator.java index 5bfa06a29dd..b13750f93d4 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ConfigCurator.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ConfigCurator.java @@ -5,6 +5,7 @@ import com.google.inject.Inject; import com.yahoo.cloud.config.ZookeeperServerConfig; import com.yahoo.text.Utf8; import com.yahoo.vespa.curator.Curator; +import org.apache.zookeeper.KeeperException; import java.util.List; import java.util.logging.Level; @@ -88,7 +89,10 @@ public class ConfigCurator { if (exists(path)) return; curator.framework().create().creatingParentsIfNeeded().forPath(path); } - catch (Exception e) { + catch (KeeperException.NodeExistsException e) { + // Ignore, path already exists + } + catch(Exception e){ throw new RuntimeException("Exception creating path " + path + " in ZooKeeper", e); } } -- cgit v1.2.3