diff options
author | jonmv <venstad@gmail.com> | 2022-10-07 14:09:18 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-10-07 14:09:18 +0200 |
commit | b4577a8729bfa8a649de3f1b1338378440d35b65 (patch) | |
tree | 1fba13b596382bf00ca5a16f7985b9576a0b90c0 /controller-server | |
parent | 4f103377cf19506f657fbc3e6a27f344d8bf6b20 (diff) |
Use compile version as a lower bound for platform version in dev/perf
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java index 0d4b2c658cf..36036d6d36d 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java @@ -52,6 +52,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.Deque; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.NavigableMap; @@ -767,8 +768,16 @@ public class JobController { .filter(versions::contains) // Don't deploy versions that are no longer known. .ifPresent(versions::add); - if (versions.isEmpty()) - throw new IllegalStateException("no deployable platform version found in the system"); + // Remove all versions that are older than the compile version. + versions.removeIf(version -> applicationPackage.compileVersion().map(version::isBefore).orElse(false)); + if (versions.isEmpty()) { + // Fall back to the newest deployable version, if all the ones with normal confidence were too old. + Iterator<VespaVersion> descending = reversed(versionStatus.deployableVersions()).iterator(); + if ( ! descending.hasNext()) + throw new IllegalStateException("no deployable platform version found in the system"); + else + versions.add(descending.next().versionNumber()); + } VersionCompatibility compatibility = controller.applications().versionCompatibility(id.applicationId()); List<Version> compatibleVersions = new ArrayList<>(); |