summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-02-04 06:01:24 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-02-04 06:01:24 +0000
commiteca9169a2922d7fcb7544a842a4e9b54971e54bf (patch)
tree74e38add8394ecc28992324a9b25a5f97ab78c9d /container-search/src/main/java/com/yahoo
parent17e572d4dad3c9e5040544072dbdc9f7a703e7bd (diff)
Do not start cluster monitor thread in test as it will race with explicit ping in test.
Diffstat (limited to 'container-search/src/main/java/com/yahoo')
-rw-r--r--container-search/src/main/java/com/yahoo/search/cluster/ClusterMonitor.java9
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/SearchCluster.java7
3 files changed, 15 insertions, 3 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/cluster/ClusterMonitor.java b/container-search/src/main/java/com/yahoo/search/cluster/ClusterMonitor.java
index d4b6279be89..d871a256a62 100644
--- a/container-search/src/main/java/com/yahoo/search/cluster/ClusterMonitor.java
+++ b/container-search/src/main/java/com/yahoo/search/cluster/ClusterMonitor.java
@@ -38,6 +38,9 @@ public class ClusterMonitor<T> {
/** A map from Node to corresponding MonitoredNode */
private final Map<T, TrafficNodeMonitor<T>> nodeMonitors = Collections.synchronizedMap(new java.util.LinkedHashMap<>());
+ /** @deprecated It is not advised to start the monitoring thread in the constructor.
+ * Use ClusterMonitor(NodeManager<T> manager, false) and explicit start(). */
+ @Deprecated
public ClusterMonitor(NodeManager<T> manager) {
this(manager, true);
}
@@ -50,6 +53,12 @@ public class ClusterMonitor<T> {
}
}
+ public void start() {
+ if ( ! monitorThread.isAlive()) {
+ monitorThread.start();
+ }
+ }
+
/** Returns the configuration of this cluster monitor */
public MonitorConfiguration getConfiguration() { return configuration; }
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 3fb0059ecb9..45e85c10f3f 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
@@ -124,7 +124,7 @@ public class Dispatcher extends AbstractComponent {
this.metricContext = metric.createContext(null);
this.maxHitsPerNode = dispatchConfig.maxHitsPerNode();
- searchCluster.startClusterMonitoring(pingFactory);
+ searchCluster.startClusterMonitoring(pingFactory, true);
try {
while ( ! searchCluster.hasInformationAboutAllNodes()) {
Thread.sleep(1);
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 cbe24eb6907..54d49569ede 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
@@ -82,20 +82,23 @@ public class SearchCluster implements NodeManager<Node> {
nodesByHost,
groups);
- this.clusterMonitor = new ClusterMonitor<>(this);
+ this.clusterMonitor = new ClusterMonitor<>(this, false);
}
public void shutDown() {
clusterMonitor.shutdown();
}
- public void startClusterMonitoring(PingFactory pingFactory) {
+ public void startClusterMonitoring(PingFactory pingFactory, boolean startPingThread) {
this.pingFactory = pingFactory;
for (var group : orderedGroups) {
for (var node : group.nodes())
clusterMonitor.add(node, true);
}
+ if (startPingThread) {
+ clusterMonitor.start();
+ }
}
ClusterMonitor<Node> clusterMonitor() { return clusterMonitor; }