summaryrefslogtreecommitdiffstats
path: root/filedistribution
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-01-08 11:52:29 +0100
committerHarald Musum <musum@verizonmedia.com>2020-01-08 11:52:29 +0100
commitde5ce7c5f8a93bb7147a330e0c9c0a50c4da5695 (patch)
tree4a01bb2469caf90a8dd969d2bd93cb3006ceab53 /filedistribution
parent94ce5ed2f5075b6ca9cda40a951c5d65caa9dd57 (diff)
Delete destination dir before moving files
Destination dir is either created and files moved into it or a directory itself is moved, so deleting the directory should always be safe and might fix an issue in case of full disk, interrupted process or some other issue leaving the file system in a bad state
Diffstat (limited to 'filedistribution')
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java3
1 files changed, 3 insertions, 0 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 c4487252e27..4089f800913 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
@@ -111,6 +111,9 @@ public class FileReceiver {
}
File file = new File(fileReferenceDir, fileName);
try {
+ // Delete destination dir, in case a previous attempt at writing to disk failed and the directory
+ // exists, but has no or incomplete content
+ deleteFileOrDirectory(fileReferenceDir);
// Unpack if necessary
if (fileType == FileReferenceData.Type.compressed) {
File decompressedDir = Files.createTempDirectory(tmpDir.toPath(), "archive").toFile();