aboutsummaryrefslogtreecommitdiffstats
path: root/filedistribution/src
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2021-12-13 12:04:57 +0100
committerHarald Musum <musum@yahooinc.com>2021-12-13 12:04:57 +0100
commit6f4f66a728c3ad83f6764010e737e335167409b0 (patch)
treebe96aa4136a6409280b5b5294b44a83b81f363f6 /filedistribution/src
parent05d0ca3c8f0b6d91adf358d1de41cdedc9bf1c90 (diff)
Don't try to download after timeout
Diffstat (limited to 'filedistribution/src')
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java
index 73d40a40e6f..21a9833c3e0 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java
@@ -11,6 +11,7 @@ import com.yahoo.vespa.config.ConnectionPool;
import java.io.File;
import java.time.Duration;
+import java.time.Instant;
import java.util.Optional;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -53,6 +54,7 @@ public class FileReferenceDownloader {
}
private void waitUntilDownloadStarted(FileReferenceDownload fileReferenceDownload) {
+ Instant end = Instant.now().plus(downloadTimeout);
FileReference fileReference = fileReferenceDownload.fileReference();
int retryCount = 0;
Connection connection = connectionPool.getCurrent();
@@ -69,7 +71,7 @@ public class FileReferenceDownloader {
// exist on just one config server, and which one could be different for each file reference), so we
// should get a new connection for every retry
connection = connectionPool.switchConnection(connection);
- } while (retryCount < 5);
+ } while (retryCount < 5 || Instant.now().isAfter(end));
fileReferenceDownload.future().completeExceptionally(new RuntimeException("Failed getting " + fileReference));
downloads.remove(fileReference);