<#567 Added IsFailurePermanent flag on DynamicTask...
# flyte-github
a
#567 Added IsFailurePermanent flag on DynamicTaskStatus Pull request opened by hamersaw TL;DR Currently dynamic tasks treat all failures and retryable which results in unintended behavior when subtasks are attempted multiple times. This PR adds a
IsFailurePermanent
field on the
DynamicTaskStatus
struct to indicate that the failure is permanent, and therefore should not be recovered. Type ☑︎ Bug Fix ☐ Feature ☐ Plugin Are all requirements met? ☑︎ Code completed ☑︎ Smoke tested ☐ Unit tests added ☐ Code documentation added ☐ Any pending items have an associated Issue Complete description The choice to use a new flag is entirely out of backwards compatibility. Other options include: (1) Using the ExecutionError in flyteplugins io rather than flyteidl ExecutionError: This would make retrieval of in progress dynamic task status fail when it expects a different error type on the field. (2) Naming the flag
IsRecoverable
vs `isPermanent`: This is difficult because intuition says that we should use
IsRecoverable
which adheres more to the Flyte standard. The biggest issue is that dynamics treat all failures as retryable by default now, so this would change the default to be non-recoverable (ie.
false
for
IsRecoverable
) which changes the default behavior. It is VERY difficult to ensure there will be no regressions. Tracking Issue fixes flyteorg/flyte#3606 Follow-up issue NA flyteorg/flytepropeller GitHub Actions: Goreleaser GitHub Actions: Build & Push Flytepropeller Image GitHub Actions: Bump Version GitHub Actions: Check Go Generate / Go Generate 10 other checks have passed 10/14 successful checks