diff options
author | Harald Musum <musum@oath.com> | 2018-04-05 12:00:39 +0200 |
---|---|---|
committer | Harald Musum <musum@oath.com> | 2018-04-05 12:00:39 +0200 |
commit | 63dc3ec5ac1b7bc19a26b5b92e2fc7dd6f15af8b (patch) | |
tree | 63f7b45bb4193aaf028f6966ce80d1c68333e48e /filedistribution/src | |
parent | 837e0aad88bb1c11a62d0491302c86ef1df2c533 (diff) |
Log at higher log level if retrying
Diffstat (limited to 'filedistribution/src')
-rw-r--r-- | filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java | 16 |
1 files changed, 10 insertions, 6 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 04e5f1a9577..985b9a0069e 100644 --- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java +++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java @@ -20,6 +20,7 @@ import java.util.Map; import java.util.Optional; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -55,11 +56,13 @@ public class FileReferenceDownloader { FileReference fileReference = fileReferenceDownload.fileReference(); long end = System.currentTimeMillis() + timeout.toMillis(); boolean downloadStarted = false; + int retryCount = 0; while ((System.currentTimeMillis() < end) && !downloadStarted) { try { - if (startDownloadRpc(fileReferenceDownload)) { + if (startDownloadRpc(fileReferenceDownload, retryCount)) { downloadStarted = true; } else { + retryCount++; Thread.sleep(sleepBetweenRetries.toMillis()); } } @@ -104,7 +107,7 @@ public class FileReferenceDownloader { } } - private boolean startDownloadRpc(FileReferenceDownload fileReferenceDownload) { + private boolean startDownloadRpc(FileReferenceDownload fileReferenceDownload, int retryCount) { Connection connection = connectionPool.getCurrent(); Request request = new Request("filedistribution.serveFile"); String fileReference = fileReferenceDownload.fileReference().value(); @@ -112,18 +115,19 @@ public class FileReferenceDownloader { request.parameters().add(new Int32Value(fileReferenceDownload.downloadFromOtherSourceIfNotFound() ? 0 : 1)); execute(request, connection); + Level logLevel = (retryCount > 0 ? LogLevel.INFO : LogLevel.DEBUG); if (validateResponse(request)) { - log.log(LogLevel.DEBUG, () -> "Request callback, OK. Req: " + request + "\nSpec: " + connection); + log.log(logLevel, () -> "Request callback, OK. Req: " + request + "\nSpec: " + connection); if (request.returnValues().get(0).asInt32() == 0) { - log.log(LogLevel.DEBUG, () -> "Found file reference '" + fileReference + "' available at " + connection.getAddress()); + log.log(logLevel, () -> "Found file reference '" + fileReference + "' available at " + connection.getAddress()); return true; } else { - log.log(LogLevel.DEBUG, "File reference '" + fileReference + "' not found for " + connection.getAddress()); + log.log(logLevel, "File reference '" + fileReference + "' not found for " + connection.getAddress()); connectionPool.setNewCurrentConnection(); return false; } } else { - log.log(LogLevel.DEBUG, "Request failed. Req: " + request + "\nSpec: " + connection.getAddress() + + log.log(logLevel, "Request failed. Req: " + request + "\nSpec: " + connection.getAddress() + ", error code: " + request.errorCode() + ", set error for connection and use another for next request"); connectionPool.setError(connection, request.errorCode()); return false; |