aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2022-10-14 09:25:48 +0200
committerValerij Fredriksen <valerijf@yahooinc.com>2022-10-14 09:25:56 +0200
commit967b349cfbdaa645ce09fded5bcafc16291d90b2 (patch)
treed79ca65e1511179b5094aa2ebde3edb2e8de2030 /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
parent0152c8b04cc6b3fe1f74ecc7af2449467c75802c (diff)
Reapply "Remove HostLivenessTracker"
This reverts commit a5ed12b351806b187613457b58982ca67f537594.
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java63
1 files changed, 3 insertions, 60 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
index 3e7abe8f053..32eac49a288 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
@@ -77,23 +77,6 @@ public class NodeFailer extends NodeRepositoryMaintainer {
int throttledHostFailures = 0;
int throttledNodeFailures = 0;
- // Ready nodes
- try (Mutex lock = nodeRepository().nodes().lockUnallocated()) {
- for (FailingNode failing : findReadyFailingNodes()) {
- attempts++;
- if (throttle(failing.node())) {
- failures++;
- if (failing.node().type().isHost())
- throttledHostFailures++;
- else
- throttledNodeFailures++;
- continue;
- }
- nodeRepository().nodes().fail(failing.node().hostname(), Agent.NodeFailer, failing.reason());
- }
- }
-
- // Active nodes
for (FailingNode failing : findActiveFailingNodes()) {
attempts++;
if (!failAllowedFor(failing.node().type())) continue;
@@ -116,22 +99,6 @@ public class NodeFailer extends NodeRepositoryMaintainer {
return asSuccessFactor(attempts, failures);
}
- private Collection<FailingNode> findReadyFailingNodes() {
- Set<FailingNode> failingNodes = new HashSet<>();
- for (Node node : nodeRepository().nodes().list(Node.State.ready)) {
- Node hostNode = node.parentHostname().flatMap(parent -> nodeRepository().nodes().node(parent)).orElse(node);
- List<String> failureReports = reasonsToFailHost(hostNode);
- if (failureReports.size() > 0) {
- if (hostNode.equals(node)) {
- failingNodes.add(new FailingNode(node, "Host has failure reports: " + failureReports));
- } else {
- failingNodes.add(new FailingNode(node, "Parent (" + hostNode + ") has failure reports: " + failureReports));
- }
- }
- }
- return failingNodes;
- }
-
private Collection<FailingNode> findActiveFailingNodes() {
Set<FailingNode> failingNodes = new HashSet<>();
NodeList activeNodes = nodeRepository().nodes().list(Node.State.active);
@@ -150,7 +117,7 @@ public class NodeFailer extends NodeRepositoryMaintainer {
for (Node node : activeNodes) {
if (allSuspended(node, activeNodes)) {
- Node host = node.parentHostname().flatMap(parent -> activeNodes.node(parent)).orElse(node);
+ Node host = node.parentHostname().flatMap(activeNodes::node).orElse(node);
if (host.type().isHost()) {
List<String> failureReports = reasonsToFailHost(host);
if ( ! failureReports.isEmpty()) {
@@ -175,7 +142,7 @@ public class NodeFailer extends NodeRepositoryMaintainer {
/** Returns whether node has any kind of hardware issue */
static boolean hasHardwareIssue(Node node, NodeList allNodes) {
- Node host = node.parentHostname().flatMap(parent -> allNodes.node(parent)).orElse(node);
+ Node host = node.parentHostname().flatMap(allNodes::node).orElse(node);
return reasonsToFailHost(host).size() > 0;
}
@@ -344,30 +311,6 @@ public class NodeFailer extends NodeRepositoryMaintainer {
}
- private static class FailingNode {
-
- private final Node node;
- private final String reason;
-
- public FailingNode(Node node, String reason) {
- this.node = node;
- this.reason = reason;
- }
-
- public Node node() { return node; }
- public String reason() { return reason; }
-
- @Override
- public boolean equals(Object other) {
- if ( ! (other instanceof FailingNode)) return false;
- return ((FailingNode)other).node().equals(this.node());
- }
-
- @Override
- public int hashCode() {
- return node.hashCode();
- }
-
- }
+ private record FailingNode(Node node, String reason) { }
}