diff options
author | Harald Musum <musum@yahooinc.com> | 2022-01-15 17:20:58 +0100 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2022-01-15 17:20:58 +0100 |
commit | d3178fec0be4a3be0d75368ba85f75c53225a6a3 (patch) | |
tree | 0564cae77455f3a845f9bc5b1f172fcc31d6feda /configserver | |
parent | 0c3c4530b32f6be96853cb37a672177a66d8f93f (diff) |
Use supplied clock when deleting file references
Also makes it possible to speed up test by using clock
instead of sleeping
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java | 2 | ||||
-rw-r--r-- | configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java | 20 |
2 files changed, 14 insertions, 8 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java index 80194337daa..63ab00275bf 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java @@ -631,7 +631,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye private List<String> sortedUnusedFileReferences(File fileReferencesPath, Set<String> fileReferencesInUse, Duration keepFileReferences) { Set<String> fileReferencesOnDisk = getFileReferencesOnDisk(fileReferencesPath); log.log(Level.FINE, () -> "File references on disk (in " + fileReferencesPath + "): " + fileReferencesOnDisk); - Instant instant = Instant.now().minus(keepFileReferences); + Instant instant = clock.instant().minus(keepFileReferences); return fileReferencesOnDisk .stream() .filter(fileReference -> ! fileReferencesInUse.contains(fileReference)) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java index 3b27d5de24f..c2af7f1ee1f 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java @@ -248,19 +248,24 @@ public class ApplicationRepositoryTest { } @Test - public void deleteUnusedFileReferences() throws IOException, InterruptedException { + public void deleteUnusedFileReferences() throws IOException { File fileReferencesDir = temporaryFolder.newFolder(); Duration keepFileReferencesDuration = Duration.ofSeconds(4); // Add file reference that is not in use and should be deleted (older than 'keepFileReferencesDuration') File filereferenceDirOldest = createFilereferenceOnDisk(new File(fileReferencesDir, "foo")); + clock.advance(Duration.ofSeconds(1)); // Add file references that are not in use and could be deleted IntStream.range(0, 3).forEach(i -> { - createFilereferenceOnDisk(new File(fileReferencesDir, "bar" + i)); - try { Thread.sleep(Duration.ofSeconds(1).toMillis()); } catch (InterruptedException e) { /* ignore */ } + try { + createFilereferenceOnDisk(new File(fileReferencesDir, "bar" + i)); + } catch (IOException e) { + fail(e.getMessage()); + } + clock.advance(Duration.ofSeconds(1)); }); - Thread.sleep(keepFileReferencesDuration.toMillis()); + clock.advance(keepFileReferencesDuration); // Add file reference that is not in use, but should not be deleted (newer than 'keepFileReferencesDuration') File filereferenceDirNewest = createFilereferenceOnDisk(new File(fileReferencesDir, "baz")); @@ -287,10 +292,11 @@ public class ApplicationRepositoryTest { assertTrue(filereferenceDirNewest.exists()); } - private File createFilereferenceOnDisk(File filereferenceDir) { + private File createFilereferenceOnDisk(File filereferenceDir) throws IOException { assertTrue(filereferenceDir.mkdir()); - File bar = new File(filereferenceDir, "file"); - IOUtils.writeFile(bar, Utf8.toBytes("test")); + File file = new File(filereferenceDir, "bar"); + IOUtils.writeFile(file, Utf8.toBytes("test")); + Files.setAttribute(filereferenceDir.toPath(), "lastAccessTime", FileTime.from(clock.instant())); return filereferenceDir; } |