You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "Damian Momot (Jira)" <ji...@apache.org> on 2019/12/03 14:56:00 UTC
[jira] [Created] (AIRFLOW-6163) BaseSensorOperator with
soft_fail=True does not take into account downstream trigger_rule
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)