Damian Momot created AIRFLOW-6163: ------------------------------------- Summary: 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
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)