argo-workflows: LifeCycle hooks phase not updated at workflow level

Summary

The phase of LifeCycle hooks configured at a workflow level are not updated once completed. They are stuck in pending state forever.

This prevents workflows from being retried, which negatively impacts long running workflows with lots of steps

What happened/what you expected to happen?

Lifecycle hook phase should change to Succeeded once completed

What version are you running?

v3.3.3

Impacted by this bug? Give it a ๐Ÿ‘. We prioritise the issues with the most ๐Ÿ‘.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 14
  • Comments: 32 (15 by maintainers)

Commits related to this issue

Most upvoted comments

I still have the issue testing in v3.4.0-rc4 where itโ€™s supposed to have included the fix. cc: @sarabala1979

hooks with expression workflow.status == "Failed" or workflow.status == "Succeeded" remains with PHASE=Pending despite they are being executed and finished fine.

Should we open a new issue?

example:

spec:
  templates:
    - name: main
      steps:
        - - name: docker-go-test
            templateRef:
              name: docker-go-test
              template: unit-test
  entrypoint: main
  hooks:
    failed:
      templateRef:
        name: notifier
        template: notifier-failed
      expression: workflow.status == "Failed"
    running:
      templateRef:
        name: notifier
        template: notifier-running
      expression: workflow.status == "Running"
    succeeded:
      templateRef:
        name: notifier
        template: notifier-succeeded
      expression: workflow.status == "Succeeded"

image

Hi @alexec @sarabala1979 I have time to look into this issue. Itโ€™s really effecting us, as we cant retry steps in long running workflows.

Should I create a new issue or can you reopen this one?

This has been affecting our team also. Seems like a fix is in, thanks @sarabala1979. Will it make 3.4?

Go is VERY easy to learn. It is designed to be. Took me about 3h to learn.

  1. Spend 3h doing http://tour.golang.org
  2. You are now a Go programmer.