diff options
author | Valerij Fredriksen <valerij92@gmail.com> | 2019-06-02 20:17:47 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-06-04 12:09:31 +0200 |
commit | 8b97b04ea954ef503c16808062827cb4b232009c (patch) | |
tree | cf3fcd4c8eeb8c372acd0a947c81042d905ee9be /controller-server/src/main/java/com/yahoo | |
parent | b04d168a7dd0cbe5d128deec2671362d2104ae6d (diff) |
Do not upgrade unless not yet converged
Diffstat (limited to 'controller-server/src/main/java/com/yahoo')
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 |