From 664c3c2004ef1960b76d0a94420b950b10b48874 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Mon, 22 Mar 2021 12:30:30 +0100 Subject: [PATCH] Improve error tracking when error handler is used --- pkg/wfexec/session.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/wfexec/session.go b/pkg/wfexec/session.go index caad0c0b7..d1ce83458 100644 --- a/pkg/wfexec/session.go +++ b/pkg/wfexec/session.go @@ -401,7 +401,12 @@ func (s *Session) worker(ctx context.Context) { s.execLock <- struct{}{} go func() { - st.err = s.exec(ctx, st) + err := s.exec(ctx, st) + if err != nil && st.err == nil { + // override the error from the execution + st.err = err + } + st.completed = now() // remove single @@ -422,7 +427,7 @@ func (s *Session) worker(ctx context.Context) { // after exec lock is released call event handler with (new) session status s.eventHandler(status, st, s) - if st.err != nil { + if err != nil { // pushing step execution error into error queue // to break worker loop s.qErr <- st.err