Browse Source

Create ZK nodes container before starting CuratorCache

PathChildrenCache invoked EnsureContainers internally during start(), so
the parent znode existed when publishCurrentServer ran. CuratorCache does
not, so on a fresh ZK creatingParentsIfNeeded reaches ZKPaths.mkdirs with
the trailing-slash forPath argument and fails with
"Path must not end with / character", aborting Spring startup.
pull/15515/head
Oleksandra Matviienko 5 months ago
parent
commit
dfb4829637
  1. 1
      common/queue/src/main/java/org/thingsboard/server/queue/discovery/ZkDiscoveryService.java

1
common/queue/src/main/java/org/thingsboard/server/queue/discovery/ZkDiscoveryService.java

@ -241,6 +241,7 @@ public class ZkDiscoveryService implements DiscoveryService {
client = CuratorFrameworkFactory.newClient(zkUrl, zkSessionTimeout, zkConnectionTimeout, new RetryForever(zkRetryInterval)); client = CuratorFrameworkFactory.newClient(zkUrl, zkSessionTimeout, zkConnectionTimeout, new RetryForever(zkRetryInterval));
client.start(); client.start();
client.blockUntilConnected(); client.blockUntilConnected();
client.createContainers(zkNodesDir);
cache = CuratorCache.builder(client, zkNodesDir).build(); cache = CuratorCache.builder(client, zkNodesDir).build();
cache.start(); cache.start();
stopped = false; stopped = false;

Loading…
Cancel
Save