diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-02-08 17:53:00 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-02-08 17:53:00 +0100 |
commit | 9e57219227f22f72ab73304f95bdea30bc5fc110 (patch) | |
tree | b10dc5d4da9075c73d8255a542b8ffc07f68958d /container-disc | |
parent | 12bc5e4513d97cd6bb752b3838fc610f634769a8 (diff) |
Improve logging of jdisc shutdown
Diffstat (limited to 'container-disc')
-rw-r--r-- | container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java index f527937854f..aa70bd8197f 100644 --- a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java +++ b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java @@ -330,9 +330,12 @@ public final class ConfiguredApplication implements Application { synchronized (monitor) { Set<ServerProvider> serversToClose = createIdentityHashSet(startedServers); serversToClose.removeAll(currentServers); - for (ServerProvider server : serversToClose) { - server.close(); - startedServers.remove(server); + if (serversToClose.size() > 0) { + log.info(String.format("Closing %d server instances", serversToClose.size())); + for (ServerProvider server : serversToClose) { + server.close(); + startedServers.remove(server); + } } for (ServerProvider server : currentServers) { if (!startedServers.contains(server)) { @@ -383,37 +386,35 @@ public final class ConfiguredApplication implements Application { @Override public void stop() { + log.info("Stop: Initiated"); shutdownDeadline.schedule((long)(shutdownTimeoutS.get() * 1000), dumpHeapOnShutdownTimeout.get()); - stopServersAndAwaitTermination("Stop"); + stopServersAndAwaitTermination(); + log.info("Stop: Finished"); } private void prepareStop(Request request) { + log.info("PrepareStop: Initiated"); long timeoutMillis = (long) (request.parameters().get(0).asDouble() * 1000); try (ShutdownDeadline ignored = new ShutdownDeadline(configId).schedule(timeoutMillis, dumpHeapOnShutdownTimeout.get())) { - stopServersAndAwaitTermination("PrepareStop"); + stopServersAndAwaitTermination(); + log.info("PrepareStop: Finished"); } catch (Exception e) { request.setError(ErrorCode.METHOD_FAILED, e.getMessage()); throw e; } } - private void stopServersAndAwaitTermination(String logPrefix) { + private void stopServersAndAwaitTermination() { shutdownReconfigurer(); - log.info(logPrefix + ": Closing servers"); startAndStopServers(List.of()); startAndRemoveClients(List.of()); - log.info(logPrefix + ": Waiting for all in-flight requests to complete"); - activateContainer(null, () -> {}); + activateContainer(null, () -> log.info("Last active container generation has terminated")); nonTerminatedContainerTracker.arriveAndAwaitAdvance(); - log.info(logPrefix + ": Finished"); } private void shutdownReconfigurer() { - if (!reconfigurerThread.isAlive()) { - log.info("Reconfiguration thread shutdown already completed"); - return; - } + if (!reconfigurerThread.isAlive()) return; log.info("Shutting down reconfiguration thread"); long start = System.currentTimeMillis(); shutdownReconfiguration = true; @@ -421,7 +422,7 @@ public final class ConfiguredApplication implements Application { try { reconfigurerThread.join(); log.info(String.format( - "Reconfiguration shutdown completed in %.3f seconds", (System.currentTimeMillis() - start) / 1000D)); + "Reconfiguration thread shutdown completed in %.3f seconds", (System.currentTimeMillis() - start) / 1000D)); } catch (InterruptedException e) { String message = "Interrupted while waiting for reconfiguration shutdown"; log.warning(message); |