From 19c22136b44fc7e2b88b6b91a1bfe3b8d19e25cb Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Fri, 18 Apr 2025 16:59:32 -0700 Subject: [PATCH] build: make sure defers always run in the end of the build Signed-off-by: Tonis Tiigi --- build/build.go | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/build/build.go b/build/build.go index 95d658b3..9c18dbba 100644 --- a/build/build.go +++ b/build/build.go @@ -205,15 +205,6 @@ func BuildWithResultHandler(ctx context.Context, nodes []builder.Node, opts map[ return nil, err } - defers := make([]func(), 0, 2) - defer func() { - if err != nil { - for _, f := range defers { - f() - } - } - }() - reqForNodes := make(map[string][]*reqForNode) eg, ctx := errgroup.WithContext(ctx) @@ -243,11 +234,11 @@ func BuildWithResultHandler(ctx context.Context, nodes []builder.Node, opts map[ if err != nil { return nil, err } + defer release() if err := saveLocalState(so, k, opt, np.Node(), cfg); err != nil { return nil, err } addGitAttrs(so) - defers = append(defers, release) reqn = append(reqn, &reqForNode{ resolvedNode: np, so: so,