summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-03-15 13:44:14 +0100
committerHarald Musum <musum@oath.com>2018-03-15 13:44:14 +0100
commit0171cc7bab6e7b5a0e399016bf591f1e1c21c80a (patch)
tree057259afb838e8fdb604e151c31433934d71eff1 /configserver
parentebb5360cfff995ddb04df95c684d03718017a08e (diff)
Catch exception and log and make sure to close any file data
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java12
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java8
2 files changed, 13 insertions, 7 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 c9859cc79d3..ea3c9b97465 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
@@ -22,6 +22,7 @@ import com.yahoo.vespa.filedistribution.FileDownloader;
import com.yahoo.vespa.filedistribution.FileReferenceData;
import com.yahoo.vespa.filedistribution.FileReferenceDataBlob;
import com.yahoo.vespa.filedistribution.LazyFileReferenceData;
+import com.yahoo.yolean.Exceptions;
import java.io.File;
import java.io.IOException;
@@ -119,9 +120,14 @@ public class FileServer {
log.warning(errorDescription + " for sending to '" + target.toString() + "'. " + e.toString());
}
- target.receive(fileData, new ReplayStatus(success ? 0 : 1, success ? "OK" : errorDescription));
- fileData.close();
- log.log(LogLevel.DEBUG, "Done serving reference '" + reference.toString() + "' with file '" + file.getAbsolutePath() + "'");
+ try {
+ target.receive(fileData, new ReplayStatus(success ? 0 : 1, success ? "OK" : errorDescription));
+ log.log(LogLevel.DEBUG, "Done serving reference '" + reference.toString() + "' with file '" + file.getAbsolutePath() + "'");
+ } catch (Exception e) {
+ log.log(LogLevel.WARNING, "Failed serving file: " + Exceptions.toMessageString(e));
+ } finally {
+ fileData.close();
+ }
}
private FileReferenceData readFileReferenceData(FileReference reference) throws IOException {
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 d42468ec8fd..33b7eb928e9 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
@@ -96,7 +96,7 @@ public class RpcServer implements Runnable, ReloadListener, TenantListener {
private final MetricUpdaterFactory metricUpdaterFactory;
private final HostLivenessTracker hostLivenessTracker;
private final FileServer fileServer;
-
+
private final ThreadPoolExecutor executorService;
private final FileDownloader downloader;
private volatile boolean allTenantsLoaded = false;
@@ -131,7 +131,7 @@ public class RpcServer implements Runnable, ReloadListener, TenantListener {
}
/**
- * Called by reflection from RCP.
+ * Called by reflection from RPC.
* Handles RPC method "config.v3.getConfig" requests.
* Uses the template pattern to call methods in classes that extend RpcServer.
*/
@@ -147,7 +147,7 @@ public class RpcServer implements Runnable, ReloadListener, TenantListener {
}
/**
- * Called by reflection from RCP.
+ * Called by reflection from RPC.
* Returns 0 if server is alive.
*/
@SuppressWarnings("UnusedDeclaration")
@@ -156,7 +156,7 @@ public class RpcServer implements Runnable, ReloadListener, TenantListener {
}
/**
- * Called by reflection from RCP.
+ * Called by reflection from RPC.
* Returns a String with statistics data for the server.
*
* @param req a Request