summaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorValerij Fredriksen <valerij92@gmail.com>2019-06-02 20:17:47 +0200
committerValerij Fredriksen <valerijf@verizonmedia.com>2019-06-04 12:09:31 +0200
commit8b97b04ea954ef503c16808062827cb4b232009c (patch)
treecf3fcd4c8eeb8c372acd0a947c81042d905ee9be /controller-server/src/main/java/com/yahoo
parentb04d168a7dd0cbe5d128deec2671362d2104ae6d (diff)
Do not upgrade unless not yet converged
Diffstat (limited to 'controller-server/src/main/java/com/yahoo')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/InfrastructureUpgrader.java7
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java9
2 files changed, 11 insertions, 5 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/InfrastructureUpgrader.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/InfrastructureUpgrader.java
index 0333711ae39..8818a441fbd 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/InfrastructureUpgrader.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/InfrastructureUpgrader.java
@@ -66,9 +66,12 @@ public abstract class InfrastructureUpgrader extends Maintainer {
boolean converged = true;
for (SystemApplication application : applications) {
if (convergedOn(target, application.dependencies(), zone)) {
- upgrade(target, application, zone);
+ boolean currentAppConverged = convergedOn(target, application, zone);
+ if (!currentAppConverged) {
+ upgrade(target, application, zone);
+ }
+ converged &= currentAppConverged;
}
- converged &= convergedOn(target, application, zone);
}
return converged;
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java
index 3c2455b314a..8ef353248f8 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java
@@ -40,9 +40,12 @@ public class SystemUpgrader extends InfrastructureUpgrader {
@Override
protected boolean convergedOn(Version target, SystemApplication application, ZoneId zone) {
- return minVersion(zone, application, Node::currentVersion).map(target::equals)
- .orElse(true)
- && application.configConvergedIn(zone, controller(), Optional.of(target));
+ Optional<Version> minVersion = minVersion(zone, application, Node::currentVersion);
+ // Skip application convergence check if there are no nodes belonging to the application in the zone
+ if (minVersion.isEmpty()) return true;
+
+ return minVersion.get().equals(target)
+ && application.configConvergedIn(zone, controller(), Optional.of(target));
}
@Override