[ 
https://issues.apache.org/jira/browse/AIRFLOW-6163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17026081#comment-17026081
 ] 

Jared commented on AIRFLOW-6163:
--------------------------------

Turns out this is intended behavior (although I personally disagree with the 
reasoning behind it): https://issues.apache.org/jira/browse/AIRFLOW-1786

Ugly but the only compromise I can think of is to give us a toggle to opt out 
of `_do_skip_downstream_tasks` on soft failure.

> BaseSensorOperator with soft_fail=True does not take into account downstream 
> trigger_rule
> -----------------------------------------------------------------------------------------
>
>                 Key: AIRFLOW-6163
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-6163
>             Project: Apache Airflow
>          Issue Type: Bug
>          Components: operators, scheduler
>    Affects Versions: 1.10.6
>            Reporter: Damian Momot
>            Priority: Major
>
> It looks like BaseSensorOperator skips all downstream tasks regardless of 
> their trigger_rule setting. Using following example I would expect that 
> "default_task" will be skipped, but "none_failed_task" should be run. 
> Unfortunately both tasks are skipped
>  
> {code:java}
> from datetime import datetime, timedelta
> from airflow.operators.dummy_operator import DummyOperator
> from airflow.utils.trigger_rule import TriggerRule
> from airflow import DAG
> from airflow.contrib.sensors.python_sensor import PythonSensor
> dag = DAG(
>     dag_id="trigger_rule_test",
>     schedule_interval=timedelta(minutes=1),
>     start_date=(datetime.today() - timedelta(minutes=2))
> )
> soft_fail_sensor = PythonSensor(
>     task_id="soft_fail_sensor",
>     soft_fail=True,
>     timeout=5,
>     poke_interval=1,
>     retries=0,
>     python_callable=lambda *args, **kwargs: False,
>     dag=dag
> )
> default_task = DummyOperator(
>     task_id="default_task",
>     dag=dag
> )
> none_failed_task = DummyOperator(
>     task_id="none_failed_task",
>     trigger_rule=TriggerRule.NONE_FAILED,
>     dag=dag
> )
> default_task.set_upstream(soft_fail_sensor)
> none_failed_task.set_upstream(soft_fail_sensor)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to