diff options
author | Valerij Fredriksen <valerijf@yahooinc.com> | 2023-05-31 14:24:41 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@yahooinc.com> | 2023-05-31 14:24:41 +0200 |
commit | 4739c697829a01c3c130f52474e690cedc3b5c78 (patch) | |
tree | 12c4fb2e3438c0cd4bbee2ef3a7731786faf6922 /node-repository | |
parent | 45881ba514a564da1891f804a88fe066262884b6 (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.java | 9 |
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); |