summaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java/com
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-10-07 14:09:18 +0200
committerjonmv <venstad@gmail.com>2022-10-07 14:09:18 +0200
commitb4577a8729bfa8a649de3f1b1338378440d35b65 (patch)
tree1fba13b596382bf00ca5a16f7985b9576a0b90c0 /controller-server/src/main/java/com
parent4f103377cf19506f657fbc3e6a27f344d8bf6b20 (diff)
Use compile version as a lower bound for platform version in dev/perf
Diffstat (limited to 'controller-server/src/main/java/com')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java13
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<>();