From de5ce7c5f8a93bb7147a330e0c9c0a50c4da5695 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Wed, 8 Jan 2020 11:52:29 +0100 Subject: 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 --- .../src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java | 3 +++ 1 file changed, 3 insertions(+) (limited to 'filedistribution/src') 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(); -- cgit v1.2.3