From 0f85668d0355a81b2eec65001d7782fbd6b065b8 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Sat, 6 Nov 2021 08:34:01 +0100 Subject: Revert "Download application packages asynchronously [run-systemtest]" --- .../maintenance/ApplicationPackageMaintainer.java | 61 ++++++++-------------- .../server/maintenance/SessionsMaintainer.java | 1 + 2 files changed, 22 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> 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() { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java index d980fb079e7..062f1ef816e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java @@ -25,6 +25,7 @@ public class SessionsMaintainer extends ConfigServerMaintainer { @Override protected double maintain() { + log.log(Level.FINE, () -> "Running " + SessionsMaintainer.class.getSimpleName()); applicationRepository.deleteExpiredLocalSessions(); if (hostedVespa) { -- cgit v1.2.3