summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2024-01-20 22:17:01 +0100
committerGitHub <noreply@github.com>2024-01-20 22:17:01 +0100
commitf481110c07a4759b98452deb35fe719ce6c49be4 (patch)
tree22b630be1ec06bf8d6e51b27c6ba38b122f6c19f /configserver
parent9c017f8adcf401d19e1cd88f98499d58acbe39d5 (diff)
parent0010eaf38159023a4b3d16a2f2f4ffc3e9ffb109 (diff)
Merge pull request #29989 from vespa-engine/jonmv/distribute-prepared-packages
Distribute app packages after prepare, rather than activate
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ApplicationPackageMaintainer.java18
1 files changed, 12 insertions, 6 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 dcc5d7caa0d..f18aa9acc6c 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
@@ -3,6 +3,7 @@ package com.yahoo.vespa.config.server.maintenance;
import com.yahoo.config.FileReference;
import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.TenantName;
import com.yahoo.config.subscription.ConfigSourceSet;
import com.yahoo.jrt.Supervisor;
import com.yahoo.jrt.Transport;
@@ -53,17 +54,22 @@ public class ApplicationPackageMaintainer extends ConfigServerMaintainer {
int attempts = 0;
int failures = 0;
- for (var applicationId : applicationRepository.listApplications()) {
+ for (TenantName tenantName : applicationRepository.tenantRepository().getAllTenantNames())
+ for (Session session : applicationRepository.tenantRepository().getTenant(tenantName).getSessionRepository().getRemoteSessions()) {
if (shuttingDown())
break;
-
+
+ switch (session.getStatus()) {
+ case PREPARE, ACTIVATE: break;
+ default: continue;
+ }
+
+ var applicationId = session.getApplicationId();
log.finest(() -> "Verifying application package for " + applicationId);
- Optional<Session> session = applicationRepository.getActiveSession(applicationId);
- if (session.isEmpty()) continue; // App might be deleted after call to listApplications() or not activated yet (bootstrap phase)
- Optional<FileReference> appFileReference = session.get().getApplicationPackageReference();
+ Optional<FileReference> appFileReference = session.getApplicationPackageReference();
if (appFileReference.isPresent()) {
- long sessionId = session.get().getSessionId();
+ long sessionId = session.getSessionId();
attempts++;
if (!fileReferenceExistsOnDisk(downloadDirectory, appFileReference.get())) {
log.fine(() -> "Downloading application package with file reference " + appFileReference +