diff options
author | jonmv <venstad@gmail.com> | 2022-07-04 10:16:31 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-07-04 10:16:31 +0200 |
commit | 57056557daa3ad2c0fe6163d64ca03a3249e18d1 (patch) | |
tree | 53140690b89ca4536fdc8dcb34cd0085a870f42e /controller-server/src | |
parent | d18ff9e7e115995a1131ab2ba3f456173d982a12 (diff) |
Extract revision failure threshold as constant
Diffstat (limited to 'controller-server/src')
3 files changed, 6 insertions, 3 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java index 87e86d98da9..11f8e201a84 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java @@ -61,6 +61,7 @@ import static java.util.stream.Collectors.toMap; public class DeploymentTrigger { public static final Duration maxPause = Duration.ofDays(3); + public static final Duration maxFailingRevisionTime = Duration.ofDays(5); private final static Logger log = Logger.getLogger(DeploymentTrigger.class.getName()); private final Controller controller; @@ -449,7 +450,7 @@ public class DeploymentTrigger { private boolean acceptNewRevision(DeploymentStatus status, InstanceName instance, RevisionId revision) { if (status.application().deploymentSpec().instance(instance).isEmpty()) return false; // Unknown instance. if ( ! status.jobs().failingApplicationChange() - .firstFailing().endedNoLaterThan(clock.instant().minus(Duration.ofDays(5))) + .firstFailing().endedNoLaterThan(clock.instant().minus(maxFailingRevisionTime)) .firstFailing().on(revision) .isEmpty()) return false; // Don't deploy a broken revision. boolean isChangingRevision = status.application().require(instance).change().revision().isPresent(); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java index 4f84c86350b..a2fb0df626f 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/Upgrader.java @@ -10,6 +10,7 @@ import com.yahoo.vespa.hosted.controller.application.ApplicationList; import com.yahoo.vespa.hosted.controller.application.Change; import com.yahoo.vespa.hosted.controller.application.InstanceList; import com.yahoo.vespa.hosted.controller.deployment.DeploymentStatusList; +import com.yahoo.vespa.hosted.controller.deployment.DeploymentTrigger; import com.yahoo.vespa.hosted.controller.deployment.DeploymentTrigger.ChangesToCancel; import com.yahoo.vespa.hosted.controller.persistence.CuratorDb; import com.yahoo.vespa.hosted.controller.versions.VersionStatus; @@ -96,7 +97,7 @@ public class Upgrader extends ControllerMaintainer { private void updateTargets(VersionStatus versionStatus, DeploymentStatusList deploymentStatuses, UpgradePolicy policy, OptionalInt targetMajorVersion) { InstanceList instances = instances(deploymentStatuses); InstanceList remaining = instances.with(policy); - Instant failureThreshold = controller().clock().instant().minus(Duration.ofDays(5)); + Instant failureThreshold = controller().clock().instant().minus(DeploymentTrigger.maxFailingRevisionTime); Set<ApplicationId> failingRevision = InstanceList.from(deploymentStatuses.failingApplicationChangeSince(failureThreshold)).asSet(); List<Version> targetAndNewer = new ArrayList<>(); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java index 9e10ceee45b..5e3bf2832d8 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java @@ -13,6 +13,7 @@ import com.yahoo.vespa.hosted.controller.application.pkg.ApplicationPackage; import com.yahoo.vespa.hosted.controller.deployment.ApplicationPackageBuilder; import com.yahoo.vespa.hosted.controller.deployment.DeploymentContext; import com.yahoo.vespa.hosted.controller.deployment.DeploymentTester; +import com.yahoo.vespa.hosted.controller.deployment.DeploymentTrigger; import com.yahoo.vespa.hosted.controller.deployment.Run; import com.yahoo.vespa.hosted.controller.versions.VespaVersion; import org.junit.Test; @@ -1013,7 +1014,7 @@ public class UpgraderTest { assertEquals(Change.of(revision1.get()), app.instance().change()); // Broken revision is cancelled, and new version targeted, after some time. - tester.clock().advance(Duration.ofDays(6)); + tester.clock().advance(DeploymentTrigger.maxFailingRevisionTime.plusSeconds(1)); tester.upgrader().run(); assertEquals(Change.of(version1), app.instance().change()); |