[ 
https://issues.apache.org/jira/browse/AIRFLOW-703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeremiah Lowin resolved AIRFLOW-703.
------------------------------------
    Resolution: Fixed

> Xcom data cleared too soon
> --------------------------
>
>                 Key: AIRFLOW-703
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-703
>             Project: Apache Airflow
>          Issue Type: Bug
>          Components: core, scheduler, xcom
>    Affects Versions: Airflow 2.0, Airflow 1.7.1.3
>         Environment: Tested using Dockerized Airflow setup with MySQL backend 
> and Celery executor
>            Reporter: Len Frodgers
>              Labels: xcom
>         Attachments: xcom_bug.py, xcom_bug_op1_logs.txt, xcom_bug_op2_logs.txt
>
>
> Xcom data is cleared at the start of the `run` method of the `TaskInstance`, 
> regardless of whether the TI is subsequently executed (e.g. if the TI has 
> previously succeeded, it won't execute). This means that if a TI for a DagRun 
> is run twice in close succession, the latter will correctly not execute 
> (since the former TI succeeded or is still running), but WILL clear any xcoms 
> set by the former TI. Therefore, any downstream tasks depending on these 
> xcoms will fail.
> I noticed this bug when I changed num_runs of the scheduler from None to 10. 
> It didn't happen every time, but probably 50% or so.
> However, I can reproduce this reliably and repeatably with the following test 
> dag:
> [attached]
> To make op1 execute twice, I use the UI to run it twice while op2 is doing 
> the `time.sleep`.
> Logs from running this:
> [attached]
> The fix seems straightforward: don't clear xcom unless the TI will actually 
> execute. Will happily create a PR.
> The suspect line is here: 
> https://github.com/apache/incubator-airflow/blob/master/airflow/models.py#L1202



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to