summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorAndreas Eriksen <andreer@yahoo-inc.com>2017-10-19 15:48:02 +0200
committerAndreas Eriksen <andreer@yahoo-inc.com>2017-10-19 21:56:09 +0200
commit1295cb17b5f3269ac4ab6e6469fe79f751556208 (patch)
tree5641dbcc7046662e207d8bec22ffb8d1cb515a13 /node-repository
parent49eb5bf2d5dd490ffdc3278a2c9b29d8aaef9b6e (diff)
actually mutate node repo
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java2
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