diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-12-09 21:12:44 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-12-09 21:12:44 +0100 |
commit | c8f8e85351b70a02b9915b6978dd05e1c2cc55c7 (patch) | |
tree | ccd03852e91dfd64838ac3d46e3ed00084f34188 /controller-server | |
parent | 0107067c0a9c29dd4e60231ad79e35786c390626 (diff) |
Split (async) shutdown and (sync) wait for it, and use lists in all maintainer owners
Diffstat (limited to 'controller-server')
3 files changed, 12 insertions, 4 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java index 06e489c7f58..6266e8da57e 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java @@ -3,6 +3,7 @@ package com.yahoo.vespa.hosted.controller.maintenance; import com.google.inject.Inject; import com.yahoo.component.AbstractComponent; +import com.yahoo.concurrent.maintenance.Maintainer; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.zone.ZoneApi; import com.yahoo.jdisc.Metric; @@ -14,6 +15,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Objects; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.stream.Collectors; import static java.time.temporal.ChronoUnit.HOURS; @@ -30,7 +32,7 @@ import static java.time.temporal.ChronoUnit.SECONDS; public class ControllerMaintenance extends AbstractComponent { private final Upgrader upgrader; - private final List<ControllerMaintainer> maintainers = new ArrayList<>(); + private final List<Maintainer> maintainers = new CopyOnWriteArrayList<>(); @Inject @SuppressWarnings("unused") // instantiated by Dependency Injection @@ -68,7 +70,8 @@ public class ControllerMaintenance extends AbstractComponent { @Override public void deconstruct() { - maintainers.forEach(ControllerMaintainer::close); + maintainers.forEach(Maintainer::shutdown); + maintainers.forEach(Maintainer::close); } /** Create one OS upgrader per cloud found in the zone registry of controller */ 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 f08a23ab8ed..8823959fb9b 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 @@ -56,9 +56,14 @@ public class JobRunner extends ControllerMaintainer { } @Override + public void shutdown() { + super.shutdown(); + executors.shutdown(); + } + + @Override public void close() { super.close(); - executors.shutdown(); try { if ( ! executors.awaitTermination(10, TimeUnit.SECONDS)) { executors.shutdownNow(); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ReindexingTriggerer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ReindexingTriggerer.java index 11d3962a7d6..96e9f087a67 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ReindexingTriggerer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ReindexingTriggerer.java @@ -65,7 +65,7 @@ public class ReindexingTriggerer extends ControllerMaintainer { static Duration offset(ApplicationId id, ZoneId zone) { double relativeOffset = ((id.serializedForm() + zone.value()).hashCode() & (-1 >>> 1)) / (double) (-1 >>> 1); - return Duration.ofMillis((long) (reindexingPeriod.toMillis() * (relativeOffset))); + return Duration.ofMillis((long) (reindexingPeriod.toMillis() * relativeOffset)); } static boolean reindexingIsReady(ApplicationReindexing reindexing, Instant now) { |