diff options
author | Andreas Eriksen <andreer@yahoo-inc.com> | 2017-10-19 15:48:02 +0200 |
---|---|---|
committer | Andreas Eriksen <andreer@yahoo-inc.com> | 2017-10-19 21:56:09 +0200 |
commit | 1295cb17b5f3269ac4ab6e6469fe79f751556208 (patch) | |
tree | 5641dbcc7046662e207d8bec22ffb8d1cb515a13 /node-repository | |
parent | 49eb5bf2d5dd490ffdc3278a2c9b29d8aaef9b6e (diff) |
actually mutate node repo
Diffstat (limited to 'node-repository')
2 files changed, 4 insertions, 4 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java index b7971e61117..1e0202d4735 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java @@ -57,7 +57,7 @@ public class FailedExpirer extends Expirer { protected void expire(List<Node> expired) { List<Node> nodesToRecycle = new ArrayList<>(); for (Node recycleCandidate : expired) { - if (recycleCandidate.status().hardwareFailureDescription().isPresent()) { + if (recycleCandidate.status().hardwareFailureDescription().isPresent() || recycleCandidate.status().hardwareDivergence().isPresent()) { List<String> nonParkedChildren = recycleCandidate.type() != NodeType.host ? Collections.emptyList() : nodeRepository.getChildNodes(recycleCandidate.hostname()).stream() .filter(node -> node.state() != Node.State.parked) @@ -65,9 +65,9 @@ public class FailedExpirer extends Expirer { .collect(Collectors.toList()); if (nonParkedChildren.isEmpty()) { - nodeRepository.park(recycleCandidate.hostname(), Agent.system, "Parked by FailedExpirer due to HW failure on node"); + nodeRepository.park(recycleCandidate.hostname(), Agent.system, "Parked by FailedExpirer due to HW failure/divergence on node"); } else { - log.info(String.format("Expired failed node %s with HW fail is not parked because some of its children" + + log.info(String.format("Expired failed node %s with HW failure/divergence is not parked because some of its children" + " (%s) are not yet parked", recycleCandidate.hostname(), String.join(", ", nonParkedChildren))); } } else if (! failCountIndicatesHwFail(zone, recycleCandidate) || recycleCandidate.status().failCount() < 5) { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java index 463051abec3..c78663415ef 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java @@ -367,7 +367,7 @@ public class NodeFailerTest { tester.failer.run(); - assertEquals(Node.State.failed, readyNode.state()); + assertEquals(1, tester.nodeRepository.getNodes(Node.State.failed).size()); } @Test |