aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2021-11-06 08:48:46 +0100
committerGitHub <noreply@github.com>2021-11-06 08:48:46 +0100
commit0dac2ad839529051b01e2ea4c4be53bb7a14fb16 (patch)
treecfa1693ea9a3a535557ff133fb43235274c34b03
parent213f516d7b3b613cc11b0de0ee74b69939cf7136 (diff)
parent0f85668d0355a81b2eec65001d7782fbd6b065b8 (diff)
Merge pull request #19895 from vespa-engine/revert-19866-hmusum/download-application-packages-asynchronouslyv7.496.44
Revert "Download application packages asynchronously [run-systemtest]"
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java61
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java1
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<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() {
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) {