diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-01-22 09:09:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-22 09:09:50 +0100 |
commit | 9dc477e37b4be00bc316a5e7cb5427f6cdbcba95 (patch) | |
tree | 660ef1f2d3de385372a32f88d6a17f13600cca60 /configserver | |
parent | f936993576920fa1e729ef79b17bdc7d917e73df (diff) | |
parent | c77d23f9875ed8f53519dca0f4ad2585ed8ca7b9 (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.java | 18 |
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 |