summaryrefslogtreecommitdiffstats
path: root/filedistribution
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-01-01 19:02:15 +0100
committerHarald Musum <musum@oath.com>2018-01-01 19:02:15 +0100
commit6fc2c790cef0fd93f26d5b0d125e2598c78f2c97 (patch)
tree8f27590a3063bc592b85dc5d269e89491def2524 /filedistribution
parentf269b3f950262a95193f689c423188aa5005eb0b (diff)
Delete temp file if move fails because file already exists
Diffstat (limited to 'filedistribution')
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
index c2825528f7e..d9d1b4984eb 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
@@ -248,8 +248,11 @@ public class FileReceiver {
log.log(LogLevel.DEBUG, "File moved from " + tempFile.getAbsolutePath()+ " to " + destination.getAbsolutePath());
} catch (FileAlreadyExistsException e) {
// Don't fail if it already exists (we might get the file from several config servers when retrying, servers are down etc.
- // so it might be written already)
+ // so it might be written already). Delete temp file in that case, to avoid filling the disk.
log.log(LogLevel.DEBUG, "File '" + destination.getAbsolutePath() + "' already exists, continuing: " + e.getMessage());
+ try {
+ Files.delete(tempFile.toPath());
+ } catch (IOException ioe) { /* ignore failure */}
} catch (IOException e) {
String message = "Failed moving file '" + tempFile.getAbsolutePath() + "' to '" + destination.getAbsolutePath() + "'";
log.log(LogLevel.ERROR, message, e);