diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-09-20 10:59:30 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-09-20 10:59:30 +0200 |
commit | 0419474326ad85730a8f8d02caa7e027474ed018 (patch) | |
tree | c1a2608cfa3a692c2ac9fb2de287016d9fe5eefa /container-search | |
parent | f595dec38a20f39d47c54df4a9c5d44f2a220485 (diff) |
false is false, and true is true, can not be both
Diffstat (limited to 'container-search')
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"); |