diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-06-06 11:36:55 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2023-06-06 11:45:54 +0200 |
commit | dc7841a19b775132b34044032d661c7213cd20a9 (patch) | |
tree | db3e5d208c9a0dd9851c7858e0433589be6049ca /node-repository | |
parent | 6ee53faf3172ed15a541717fd51bebc73cd82e5d (diff) |
Do not count lack of capacity as failures
Diffstat (limited to 'node-repository')
2 files changed, 5 insertions, 9 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostFlavorUpgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostFlavorUpgrader.java index eb05aa21c4e..b16f2c5c17e 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostFlavorUpgrader.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostFlavorUpgrader.java @@ -60,8 +60,6 @@ public class HostFlavorUpgrader extends NodeRepositoryMaintainer { NodeList activeNodes = allNodes.nodeType(NodeType.tenant) .state(Node.State.active) .shuffle(random); // Shuffle to avoid getting stuck trying to upgrade the same host - int attempts = 0; - int failures = 0; for (var node : activeNodes) { Optional<Node> parent = allNodes.parentOf(node); if (parent.isEmpty()) continue; @@ -74,18 +72,16 @@ public class HostFlavorUpgrader extends NodeRepositoryMaintainer { deploymentValid = deployment.isValid(); if (!deploymentValid) continue; - attempts++; log.log(Level.INFO, () -> "Redeploying " + node.allocation().get().owner() + " to upgrade flavor (" + parent.get().flavor().name() + ") of " + parent.get()); upgradeFlavor(parent.get(), true); deployment.activate(); redeployed = true; - return asSuccessFactorDeviation(attempts, failures); + return 1.0; } catch (NodeAllocationException e) { // Fine, no capacity for upgrade } finally { if (deploymentValid && !redeployed) { // Cancel upgrade if redeploy failed - failures++; upgradeFlavor(parent.get(), false); } } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostFlavorUpgraderTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostFlavorUpgraderTest.java index 964af14d8a9..6224143aabf 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostFlavorUpgraderTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostFlavorUpgraderTest.java @@ -54,14 +54,14 @@ class HostFlavorUpgraderTest { assertEquals(flavor0, host.flavor().name()); // Nothing to upgrade initially - upgrader.maintain(); + assertEquals(1, upgrader.maintain()); assertEquals(NodeList.of(), tester.nodeRepository().nodes().list() .matching(h -> h.status().wantToUpgradeFlavor())); // Mark flavor as upgradable, but fail all provisioning requests hostProvisioner.addUpgradableFlavor(flavor0) .with(Behaviour.failProvisionRequest); - upgrader.maintain(); + assertEquals(1, upgrader.maintain()); assertEquals(NodeList.of(), tester.nodeRepository().nodes().list() .matching(node -> node.status().wantToUpgradeFlavor() || node.status().wantToRetire()), @@ -69,7 +69,7 @@ class HostFlavorUpgraderTest { // First provision request fails, but second succeeds and a replacement host starts provisioning hostProvisioner.with(Behaviour.failProvisionRequest, 1); - assertEquals(-0.5, upgrader.maintain(), Double.MIN_VALUE); // One host failed, one succeeded + assertEquals(1, upgrader.maintain()); NodeList nodes = tester.nodeRepository().nodes().list(); NodeList upgradingFlavor = nodes.matching(node -> node.status().wantToRetire() && node.status().wantToUpgradeFlavor()); @@ -77,7 +77,7 @@ class HostFlavorUpgraderTest { assertEquals(1, nodes.state(Node.State.provisioned).size()); // No more upgrades are started while host is retiring - assertEquals(1.0, upgrader.maintain(), Double.MIN_VALUE); + assertEquals(1, upgrader.maintain()); assertEquals(upgradingFlavor, tester.nodeRepository().nodes().list() .matching(node -> node.status().wantToUpgradeFlavor())); } |