diff options
5 files changed, 22 insertions, 3 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java index 3034c7dfd53..cb4945bdab3 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java @@ -195,6 +195,10 @@ public class FileServer { return downloader; } + public void close() { + downloader.close(); + } + // Connection pool with all config servers except this one (might be an empty pool if there is only one config server) private static ConnectionPool createConnectionPool(ConfigserverConfig configserverConfig) { List<String> configServers = ConfigServerSpec.fromConfig(configserverConfig) diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java index 8ec0c71d7f2..851ad166c2d 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java @@ -202,6 +202,7 @@ public class RpcServer implements Runnable, ReloadListener, TenantListener { Thread.interrupted(); // Ignore and continue shutdown. } delayedConfigResponses.stop(); + fileServer.close(); supervisor.transport().shutdown().join(); isRunning = false; } diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileDownloader.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileDownloader.java index 1a84e4895e8..24b3fcac3e3 100644 --- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileDownloader.java +++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileDownloader.java @@ -142,4 +142,8 @@ public class FileDownloader { public FileReferenceDownloader fileReferenceDownloader() { return fileReferenceDownloader; } + + public void close() { + fileReferenceDownloader.close(); + } } diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java index 985b9a0069e..66b86866c3e 100644 --- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java +++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java @@ -20,6 +20,7 @@ import java.util.Map; import java.util.Optional; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; @@ -30,7 +31,6 @@ import java.util.logging.Logger; * * @author hmusum */ -// TODO: Handle shutdown of executors public class FileReferenceDownloader { private final static Logger log = Logger.getLogger(FileReferenceDownloader.class.getName()); @@ -194,7 +194,11 @@ public class FileReferenceDownloader { return connectionPool; } - public Duration getDownloadTimeout() { - return downloadTimeout; + public void close() { + try { + downloadExecutor.awaitTermination(1, TimeUnit.SECONDS); + } catch (InterruptedException e) { + Thread.interrupted(); // Ignore and continue shutdown. + } } } diff --git a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java index cab3a490a13..d1d12cb07b7 100644 --- a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java +++ b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java @@ -15,6 +15,7 @@ import com.yahoo.vespa.config.Connection; import com.yahoo.vespa.config.ConnectionPool; import net.jpountz.xxhash.XXHash64; import net.jpountz.xxhash.XXHashFactory; +import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -53,6 +54,11 @@ public class FileDownloaderTest { } } + @After + public void teardown() { + fileDownloader.close(); + } + @Test public void getFile() throws IOException { File downloadDir = fileDownloader.downloadDirectory(); |