From 6ce0c2e53c1f4737e089fc17966847f098c80a58 Mon Sep 17 00:00:00 2001 From: Peter Engelbert Date: Thu, 28 May 2020 13:44:43 -0500 Subject: [PATCH] Fix crashing `helm chart list` with large list With a large list of charts, `helm chart list` will crash with the following message: ``` $ helm chart list --debug Error: open /home/me/.cache/helm/registry/cache/blobs/sha256/109971e44d63f7fd11fff60d19db41c2429a136943be2e3f8fd3e4c165156536: too many open files helm.go:75: [debug] open /home/me/.cache/helm/registry/cache/blobs/sha256/109971e44d63f7fd11fff60d19db41c2429a136943be2e3f8fd3e4c165156536: too many open files ``` Signed-off-by: Peter Engelbert --- internal/experimental/registry/cache.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/experimental/registry/cache.go b/internal/experimental/registry/cache.go index fbd62562a..5aca63668 100644 --- a/internal/experimental/registry/cache.go +++ b/internal/experimental/registry/cache.go @@ -357,6 +357,8 @@ func (cache *Cache) fetchBlob(desc *ocispec.Descriptor) ([]byte, error) { if err != nil { return nil, err } + defer reader.Close() + bytes := make([]byte, desc.Size) _, err = reader.ReadAt(bytes, 0) if err != nil {