dstandish commented on code in PR #34392:
URL: https://github.com/apache/airflow/pull/34392#discussion_r1341813811


##########
airflow/ti_deps/deps/trigger_rule_dep.py:
##########
@@ -381,6 +381,8 @@ def _evaluate_direct_relatives() -> Iterator[TIDepStatus]:
                 elif trigger_rule == TR.ALL_SKIPPED:
                     if success or failed:
                         new_state = TaskInstanceState.SKIPPED
+                    elif upstream_done and upstream_failed:
+                        new_state = TaskInstanceState.UPSTREAM_FAILED

Review Comment:
   Yeah I chatted about this with some folks at my company... It does seem that 
the right way to think about `upstream_failed` as that it's effectively a 
subtype of failed.  Essentially, it is failed _with reason_ "upstream failed".  
   
   And, for evidence of this, we can look at how other trigger rules work.
   
   For example with "all failed", the rule is `All upstream tasks are in a 
failed or upstream_failed state`.
   So for that rule, clearly upstream failed is treated same as failed.
   
   I think it should be the same with all_skipped.
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to