From 084583752748dd972f02f79ea5e1c3db04bc8da1 Mon Sep 17 00:00:00 2001 From: Frank Hamand Date: Wed, 30 May 2018 15:57:57 +0100 Subject: [PATCH] Add a mutex to helm test message streams This is to protect against data races when running tests in parallel. Signed-off-by: Frank Hamand --- pkg/releasetesting/environment.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/releasetesting/environment.go b/pkg/releasetesting/environment.go index de383831e..4dc46a379 100644 --- a/pkg/releasetesting/environment.go +++ b/pkg/releasetesting/environment.go @@ -20,6 +20,7 @@ import ( "bytes" "fmt" "log" + "sync" "time" "k8s.io/api/core/v1" @@ -36,6 +37,7 @@ type Environment struct { Stream services.ReleaseService_RunReleaseTestServer Timeout int64 Parallel bool + streamLock sync.Mutex } func (env *Environment) createTestPod(test *test) error { @@ -109,6 +111,8 @@ func (env *Environment) streamUnknown(name, info string) error { func (env *Environment) streamMessage(msg string, status release.TestRun_Status) error { resp := &services.TestReleaseResponse{Msg: msg, Status: status} + env.streamLock.Lock() + defer env.streamLock.Unlock() return env.Stream.Send(resp) }