aboutsummaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-02-03 14:02:52 +0100
committerGitHub <noreply@github.com>2020-02-03 14:02:52 +0100
commit83f21ba4f707c9c8d9360e2bf52860ab939aaf9b (patch)
treef732f7ab32c6139fc3ef6a6eac663b523fd88621 /container-search
parent1bdeee7cbe08963de9d9bff68e7c76d68c86cf09 (diff)
parenta6011954f15c6b1e42cc9e944e0d7645071f69b0 (diff)
Merge pull request #12031 from vespa-engine/balder/wait-until-nodestate-is-known
A dispatcher should not be considered ready before it has information…
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java5
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/SearchCluster.java2
2 files changed, 6 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java b/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java
index 03b51fbaf70..3fb0059ecb9 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java
@@ -125,6 +125,11 @@ public class Dispatcher extends AbstractComponent {
this.maxHitsPerNode = dispatchConfig.maxHitsPerNode();
searchCluster.startClusterMonitoring(pingFactory);
+ try {
+ while ( ! searchCluster.hasInformationAboutAllNodes()) {
+ Thread.sleep(1);
+ }
+ } catch (InterruptedException e) {}
}
/** Returns the search cluster this dispatches to */
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/SearchCluster.java b/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/SearchCluster.java
index a48d741bdca..cbe24eb6907 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/SearchCluster.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/SearchCluster.java
@@ -240,7 +240,7 @@ public class SearchCluster implements NodeManager<Node> {
vipStatus.removeFromRotation(clusterId);
}
- private boolean hasInformationAboutAllNodes() {
+ public boolean hasInformationAboutAllNodes() {
return nodesByHost.values().stream().allMatch(node -> node.isWorking() != null);
}