From cabb2312393b5bdd0d39497f03c4986eb57d874e Mon Sep 17 00:00:00 2001 From: "Adam D. Cornett" Date: Tue, 18 Nov 2025 09:58:34 -0700 Subject: [PATCH 1/2] updating unit test make cmd to add -race flag Signed-off-by: Adam D. Cornett --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d17151491b..14a6090920 100644 --- a/Makefile +++ b/Makefile @@ -168,7 +168,7 @@ test-docs: ## Test doc links .PHONY: test-unit TEST_PKGS = $(shell $(GO) list ./... | grep -v -E 'github.com/operator-framework/operator-sdk/test/') test-unit: ## Run unit tests - $(GO) test -tags=$(GO_BUILD_TAGS) -coverprofile=coverage.out -covermode=count -short $(TEST_PKGS) + CGO_ENABLED=1 $(GO) test -race -tags=$(GO_BUILD_TAGS) -coverprofile=coverage.out -covermode=atomic -short $(TEST_PKGS) e2e_tests := test-e2e-go test-e2e-helm test-e2e-integration e2e_targets := test-e2e $(e2e_tests) From 033aeaa2f4823b2713f56adf3471ade9435e1a3b Mon Sep 17 00:00:00 2001 From: "Adam D. Cornett" Date: Tue, 18 Nov 2025 10:06:51 -0700 Subject: [PATCH 2/2] fixing race condition in external go, ensure cmd has finished Signed-off-by: Adam D. Cornett --- internal/validate/external.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/internal/validate/external.go b/internal/validate/external.go index 29937d8e4b..009a5fe9c8 100644 --- a/internal/validate/external.go +++ b/internal/validate/external.go @@ -64,13 +64,17 @@ func RunExternalValidators(ctx context.Context, entrypoints []string, bundleRoot dec := json.NewDecoder(stdout) dec.DisallowUnknownFields() - if err := dec.Decode(&manifestresults[i]); err != nil { - fmt.Printf("decode failed: %v\n", err) - return nil, err - } + decodeErr := dec.Decode(&manifestresults[i]) + // Always wait for the command to finish to ensure stderr is fully written + // and all goroutines complete before returning. if err := cmd.Wait(); err != nil { return nil, err } + // Return decode error after waiting for command to complete + if decodeErr != nil { + fmt.Printf("decode failed: %v\n", decodeErr) + return nil, decodeErr + } } return manifestresults, nil }