summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-01-22 09:09:50 +0100
committerGitHub <noreply@github.com>2020-01-22 09:09:50 +0100
commit9dc477e37b4be00bc316a5e7cb5427f6cdbcba95 (patch)
tree660ef1f2d3de385372a32f88d6a17f13600cca60 /configserver
parentf936993576920fa1e729ef79b17bdc7d917e73df (diff)
parentc77d23f9875ed8f53519dca0f4ad2585ed8ca7b9 (diff)
Merge pull request #11872 from vespa-engine/hmusum/skip-applications-that-we-fail-to-find-file-references-for
Handle expections when finding file references to delete
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java18
1 files changed, 12 insertions, 6 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
index e9032555b09..1d7bc59454e 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
@@ -426,12 +426,18 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
Set<String> fileReferencesInUse = new HashSet<>();
// Intentionally skip applications that we for some reason do not find
- listApplications().stream()
- .map(this::getOptionalApplication)
- .map(Optional::get)
- .forEach(application -> fileReferencesInUse.addAll(application.getModel().fileReferences().stream()
- .map(FileReference::value)
- .collect(Collectors.toSet())));
+ // or that we fail to get file references for (they will be retried on the next run)
+ for (var application : listApplications()) {
+ try {
+ Optional<Application> app = getOptionalApplication(application);
+ if (app.isEmpty()) continue;
+ fileReferencesInUse.addAll(app.get().getModel().fileReferences().stream()
+ .map(FileReference::value)
+ .collect(Collectors.toSet()));
+ } catch (Exception e) {
+ log.log(LogLevel.WARNING, "Getting file references in use for '" + application + "' failed", e);
+ }
+ }
log.log(LogLevel.DEBUG, "File references in use : " + fileReferencesInUse);
// Find those on disk that are not in use