summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-10-03 09:05:25 +0200
committerjonmv <venstad@gmail.com>2022-10-03 09:05:25 +0200
commit759565a40acf17ba4b67834075865d3b76e8e32e (patch)
treefff69b3f98710196850abd5fd2ddedf74d9ec48c
parent8384dc33d95317f2e66e2708e6e7ce531c326b69 (diff)
Releases in public imply high confidence
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
index 92ebc5b7177..19775ef420d 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
@@ -391,15 +391,23 @@ public class ApplicationController {
.map(VespaVersion::versionNumber)
.filter(systemCompatible)
.max(naturalOrder());
- if (nonBroken.isPresent()) return nonBroken.get();
- // Fall back to the newest, system-compatible version with unknown confidence.
+ // Fall back to the newest, system-compatible version with unknown confidence. For public systems, this implies high confidence.
Set<Version> knownVersions = versionStatus.versions().stream().map(VespaVersion::versionNumber).collect(toSet());
Optional<Version> unknown = controller.mavenRepository().metadata().versions().stream()
.filter(version -> ! knownVersions.contains(version))
.filter(systemCompatible)
.max(naturalOrder());
- if (unknown.isPresent()) return unknown.get();
+
+ if (nonBroken.isPresent()) {
+ if (controller.system().isPublic() && unknown.isPresent() && unknown.get().isAfter(nonBroken.get()))
+ return unknown.get();
+
+ return nonBroken.get();
+ }
+
+ if (unknown.isPresent())
+ return unknown.get();
throw new IllegalArgumentException("no suitable, released compile version exists" +
(wantedMajor.isPresent() ? " for specified major: " + wantedMajor.getAsInt() : ""));