diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-01-08 11:52:29 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-01-08 11:52:29 +0100 |
commit | de5ce7c5f8a93bb7147a330e0c9c0a50c4da5695 (patch) | |
tree | 4a01bb2469caf90a8dd969d2bd93cb3006ceab53 /filedistribution | |
parent | 94ce5ed2f5075b6ca9cda40a951c5d65caa9dd57 (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.java | 3 |
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(); |