Skip to content

Commit 425dc96

Browse files
committed
Fix: Execute finally on panic, never skip cleanup
1 parent 61b4e17 commit 425dc96

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

pkg/common/executor.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -175,13 +175,15 @@ func (e Executor) IfBool(conditional bool) Executor {
175175

176176
// Finally adds an executor to run after other executor
177177
func (e Executor) Finally(finally Executor) Executor {
178-
return func(ctx context.Context) error {
179-
err := e(ctx)
180-
err2 := finally(ctx)
181-
if err2 != nil {
182-
return fmt.Errorf("Error occurred running finally: %v (original error: %v)", err2, err)
183-
}
184-
return err
178+
return func(ctx context.Context) (err error) {
179+
defer func() {
180+
err2 := finally(ctx)
181+
if err2 != nil {
182+
err = fmt.Errorf("Error occurred running finally: %v (original error: %v)", err2, err)
183+
}
184+
}()
185+
err = e(ctx)
186+
return
185187
}
186188
}
187189

0 commit comments

Comments
 (0)