diff options
author | Jon Bratseth <bratseth@oath.com> | 2021-11-06 08:48:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-06 08:48:46 +0100 |
commit | 0dac2ad839529051b01e2ea4c4be53bb7a14fb16 (patch) | |
tree | cfa1693ea9a3a535557ff133fb43235274c34b03 /configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java | |
parent | 213f516d7b3b613cc11b0de0ee74b69939cf7136 (diff) | |
parent | 0f85668d0355a81b2eec65001d7782fbd6b065b8 (diff) |
Merge pull request #19895 from vespa-engine/revert-19866-hmusum/download-application-packages-asynchronouslyv7.496.44
Revert "Download application packages asynchronously [run-systemtest]"
Diffstat (limited to 'configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java | 61 |
1 files changed, 21 insertions, 40 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java index 7147743a086..2c0b7e090a6 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java @@ -20,12 +20,6 @@ import com.yahoo.vespa.flags.FlagSource; import java.io.File; import java.time.Duration; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.logging.Level; import java.util.logging.Logger; import static com.yahoo.vespa.config.server.filedistribution.FileDistributionUtil.fileReferenceExistsOnDisk; @@ -62,10 +56,9 @@ public class ApplicationPackageMaintainer extends ConfigServerMaintainer { protected double maintain() { if (getOtherConfigServersInCluster(configserverConfig).isEmpty()) return 1.0; // Nothing to do - final AtomicInteger attempts = new AtomicInteger(0); - final AtomicInteger failures = new AtomicInteger(0); + int attempts = 0; + int failures = 0; - List<CompletableFuture<Void>> futures = new ArrayList<>(); try (var fileDownloader = createFileDownloader()) { for (var applicationId : applicationRepository.listApplications()) { log.fine(() -> "Verifying application package for " + applicationId); @@ -73,40 +66,28 @@ public class ApplicationPackageMaintainer extends ConfigServerMaintainer { if (session == null) continue; // App might be deleted after call to listApplications() FileReference applicationPackage = session.getApplicationPackageReference(); - if (applicationPackage == null) continue; - - if ( ! fileReferenceExistsOnDisk(downloadDirectory, applicationPackage)) { - long sessionId = session.getSessionId(); - log.fine(() -> "Downloading application package for " + applicationId + - " application package reference " + applicationPackage + - " (session " + sessionId + ")"); - - FileReferenceDownload download = new FileReferenceDownload(applicationPackage, - false, - this.getClass().getSimpleName()); - futures.add(CompletableFuture.supplyAsync(() -> fileDownloader.getFile(download)) - .thenAccept(file -> { - if (file.isPresent()) { - attempts.incrementAndGet(); - createLocalSessionIfMissing(applicationId, sessionId); - } else { - failures.incrementAndGet(); - log.warning("Failed to download application package for application " + - applicationId + " (session " + sessionId + ")"); - } - })); + long sessionId = session.getSessionId(); + log.fine(() -> "Verifying application package file reference " + applicationPackage + " for session " + sessionId); + + if (applicationPackage != null) { + attempts++; + if (! fileReferenceExistsOnDisk(downloadDirectory, applicationPackage)) { + log.fine(() -> "Downloading missing application package for application " + applicationId + " (session " + sessionId + ")"); + + FileReferenceDownload download = new FileReferenceDownload(applicationPackage, + false, + this.getClass().getSimpleName()); + if (fileDownloader.getFile(download).isEmpty()) { + failures++; + log.warning("Failed to download application package for application " + applicationId + " (session " + sessionId + ")"); + continue; + } + } + createLocalSessionIfMissing(applicationId, sessionId); } } } - log.fine(() -> "Attempts: " + attempts.get() + ", failures: " + failures.get()); - futures.forEach(future -> { - try { - future.get(); - } catch (InterruptedException | ExecutionException e) { - log.log(Level.WARNING, "Failed to get future", e); - } - }); - return asSuccessFactor(attempts.get(), failures.get()); + return asSuccessFactor(attempts, failures); } private FileDownloader createFileDownloader() { |