summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2020-09-24 11:42:20 +0200
committerGitHub <noreply@github.com>2020-09-24 11:42:20 +0200
commitf1707e50e0d7c3d4792db2f39ef2845f665704eb (patch)
tree55a71bbb0e98639f71e3c30d92b3ce9a0cf8da68 /controller-server
parent46f7e65b08c7ac7f7da5f3561af83f15772bd03c (diff)
parent8c6369d5c14cc3c7e7504ffdeb14f07566870364 (diff)
Merge pull request #14520 from vespa-engine/jonmv/detect-more-relevant-runs-as-relevant
Jonmv/detect more relevant runs as relevant
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/Versions.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java2
3 files changed, 6 insertions, 4 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 d39e0c134fd..709064c8715 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
@@ -107,7 +107,9 @@ public class DeploymentTrigger {
Map<JobId, List<Versions>> newJobsToRun = jobs.deploymentStatus(application.get()).jobsToRun();
for (Run run : jobs.active(application.get().id().instance(instanceName))) {
if ( ! run.id().type().environment().isManuallyDeployed()
- && ! newJobsToRun.getOrDefault(run.id().job(), List.of()).contains(run.versions()))
+ && newJobsToRun.getOrDefault(run.id().job(), List.of()).stream()
+ .noneMatch(versions -> versions.targetsMatch(run.versions())
+ && versions.sourcesMatchIfPresent(run.versions())))
jobs.abort(run.id());
}
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/Versions.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/Versions.java
index 7a0349d7737..a05b3425a01 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/Versions.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/Versions.java
@@ -58,9 +58,9 @@ public class Versions {
/** Returns whether source versions are present and match those of the given job other versions. */
public boolean sourcesMatchIfPresent(Versions versions) {
- return (sourcePlatform.filter(version -> ! version.equals(targetPlatform)).isEmpty() ||
+ return (sourcePlatform.map(targetPlatform::equals).orElse(true) ||
sourcePlatform.equals(versions.sourcePlatform())) &&
- (sourceApplication.filter(version -> ! version.equals(targetApplication)).isEmpty() ||
+ (sourceApplication.map(targetApplication::equals).orElse(true) ||
sourceApplication.equals(versions.sourceApplication()));
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
index e0f2f0718ef..e5ee06f81dd 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
@@ -74,7 +74,7 @@ public class JobRunner extends ControllerMaintainer {
/** Advances each of the ready steps for the given run, or marks it as finished, and stashes it. Public for testing. */
public void advance(Run run) {
if ( ! run.hasFailed()
- && run.start().isBefore(controller().clock().instant().minus(jobTimeout))) {
+ && controller().clock().instant().isAfter(run.start().plus(jobTimeout))) {
jobs.abort(run.id());
advance(jobs.run(run.id()).get());
}