summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2023-05-31 14:24:41 +0200
committerValerij Fredriksen <valerijf@yahooinc.com>2023-05-31 14:24:41 +0200
commit4739c697829a01c3c130f52474e690cedc3b5c78 (patch)
tree12c4fb2e3438c0cd4bbee2ef3a7731786faf6922 /node-repository
parent45881ba514a564da1891f804a88fe066262884b6 (diff)
Give ApplicationMaintainer time to shut down
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainer.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainer.java
index 50eee9e33b3..a1eae42da38 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainer.java
@@ -95,16 +95,21 @@ public abstract class ApplicationMaintainer extends NodeRepositoryMaintainer {
@Override
public void shutdown() {
super.shutdown();
- deploymentExecutor.shutdownNow();
+ deploymentExecutor.shutdown();
}
@Override
public void awaitShutdown() {
+ Instant deadline = clock().instant().plus(Duration.ofMinutes(1));
super.awaitShutdown();
try {
+ long remainder = Duration.between(clock().instant(), deadline).toMillis();
+ if (deploymentExecutor.isShutdown()) return;
+
// Give deployments in progress some time to complete
- if (!deploymentExecutor.awaitTermination(1, TimeUnit.MINUTES)) {
+ if (remainder < 0 || !deploymentExecutor.awaitTermination(remainder, TimeUnit.MILLISECONDS)) {
log.log(Level.WARNING, "Failed to shut down deployment executor within deadline");
+ deploymentExecutor.shutdownNow();
}
} catch (InterruptedException e) {
throw new RuntimeException(e);