From bd3e4c864acff79099e578fec3caf00be6c03389 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Fri, 7 Feb 2025 08:43:00 +0100 Subject: [PATCH] go/runtime/bundle: Don't abort when some manifests cannot be loaded When upgrading from earlier versions the exploded bundle directory may contain non-bundle subdirectories which should not cause the loader to fail. --- .changelog/6044.trivial.md | 0 go/runtime/bundle/manager.go | 12 ++++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 .changelog/6044.trivial.md diff --git a/.changelog/6044.trivial.md b/.changelog/6044.trivial.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/go/runtime/bundle/manager.go b/go/runtime/bundle/manager.go index c64378a1ee2..80dc3f8c8a1 100644 --- a/go/runtime/bundle/manager.go +++ b/go/runtime/bundle/manager.go @@ -508,12 +508,20 @@ func (m *Manager) loadManifests() ([]*ExplodedManifest, error) { b, err := os.ReadFile(filepath.Join(dir, manifestName)) if err != nil { - return nil, fmt.Errorf("failed to read manifest: %w", err) + m.logger.Warn("skipping unreadable manifest", + "path", dir, + "err", err, + ) + continue } var manifest Manifest if err = json.Unmarshal(b, &manifest); err != nil { - return nil, fmt.Errorf("failed to parse manifest: %w", err) + m.logger.Warn("skipping malformed manifest", + "path", dir, + "err", err, + ) + continue } m.logger.Info("manifest loaded",