From b079f1be6d4033a7e157dc11ae46d634b044f5fc Mon Sep 17 00:00:00 2001 From: Russell Centanni Date: Fri, 12 Jan 2024 14:42:47 -0500 Subject: [PATCH] test: add lock around download helm binary Signed-off-by: Russell Centanni --- e2e/tests/ssh/ssh.go | 2 +- pkg/devspace/helm/generic/generic.go | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/e2e/tests/ssh/ssh.go b/e2e/tests/ssh/ssh.go index afb7cffded..623cd94b55 100644 --- a/e2e/tests/ssh/ssh.go +++ b/e2e/tests/ssh/ssh.go @@ -79,7 +79,7 @@ var _ = DevSpaceDescribe("ssh", func() { framework.ExpectNoError(err) }) - ginkgo.It("devspace dev should NOT start an SSH service when disabled with a variable", ginkgo.FlakeAttempts(3), func(ctx context.Context) { + ginkgo.It("devspace dev should NOT start an SSH service when disabled with a variable", func(ctx context.Context) { tempDir, err := framework.CopyToTempDir("tests/ssh/testdata/ssh-variable") framework.ExpectNoError(err) ginkgo.DeferCleanup(framework.CleanupTempDir, initialDir, tempDir) diff --git a/pkg/devspace/helm/generic/generic.go b/pkg/devspace/helm/generic/generic.go index 65b6f66cc8..3a80137561 100644 --- a/pkg/devspace/helm/generic/generic.go +++ b/pkg/devspace/helm/generic/generic.go @@ -5,6 +5,7 @@ import ( "fmt" "os" "strings" + "sync" "github.com/loft-sh/devspace/pkg/devspace/config/constants" devspacecontext "github.com/loft-sh/devspace/pkg/devspace/context" @@ -39,9 +40,10 @@ func NewGenericClient(command commands.Command, log log.Logger) Client { } type client struct { - log log.Logger - extract extract.Extract - downloader downloader.Downloader + log log.Logger + extract extract.Extract + downloader downloader.Downloader + downloaderLock sync.Mutex helmPath string } @@ -89,6 +91,9 @@ func (c *client) Exec(ctx devspacecontext.Context, args []string) ([]byte, error } func (c *client) ensureHelmBinary(ctx context.Context) error { + c.downloaderLock.Lock() + defer c.downloaderLock.Unlock() + if c.helmPath != "" { return nil }