summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-09-20 10:59:30 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-09-20 10:59:30 +0200
commit0419474326ad85730a8f8d02caa7e027474ed018 (patch)
treec1a2608cfa3a692c2ac9fb2de287016d9fe5eefa /container-search
parentf595dec38a20f39d47c54df4a9c5d44f2a220485 (diff)
false is false, and true is true, can not be both
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/SearchCluster.java11
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTest.java14
2 files changed, 21 insertions, 4 deletions
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 c17212b2481..a55a970e8ff 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
@@ -202,18 +202,21 @@ public class SearchCluster implements NodeManager<Node> {
return localCorpusDispatchTarget;
}
+ private void updateWorkingState(Node node, boolean isWorking) {
+ node.setWorking(isWorking);
+ updateVipStatusOnNodeChange(node, isWorking);
+ }
+
/** Called by the cluster monitor when node state changes to working */
@Override
public void working(Node node) {
- node.setWorking(true);
- updateVipStatusOnNodeChange(node, true);
+ updateWorkingState(node, true);
}
/** Called by the cluster monitor when node state changes to failed */
@Override
public void failed(Node node) {
- node.setWorking(false);
- updateVipStatusOnNodeChange(node, true);
+ updateWorkingState(node, false);
}
private void updateSufficientCoverage(Group group, boolean sufficientCoverage) {
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTest.java
index bde0a3c6c02..f29d6ddf324 100644
--- a/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTest.java
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTest.java
@@ -179,6 +179,20 @@ public class SearchClusterTest {
}
@Test
+ public void requireThatVipStatusIsDefaultDownWithOnlySingleLocalDispatch() {
+ State test = new State("cluster.1", 1, HostName.getLocalhost());
+ assertTrue(test.searchCluster.localCorpusDispatchTarget().isPresent());
+
+ assertFalse(test.vipStatus.isInRotation());
+ test.startMonitoring();
+ test.waitOneFullPingRound();
+ assertTrue(test.vipStatus.isInRotation());
+ test.numDocsPerNode.get(0).set(-1);
+ test.waitOneFullPingRound();
+ assertFalse(test.vipStatus.isInRotation());
+ }
+
+ @Test
public void requireThatVipStatusDownWhenLocalIsDown() {
State test = new State("cluster.1",1,HostName.getLocalhost(), "b");