[
https://issues.apache.org/jira/browse/AIRFLOW-1014?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bolke de Bruin closed AIRFLOW-1014.
-----------------------------------
Resolution: Duplicate
Assignee: Dan Davydov
Fix Version/s: 1.8.1
> depends_on_past code assumes previous dag_run had at least on TI: fails with
> NoResultFound: No row was found for one()
> ----------------------------------------------------------------------------------------------------------------------
>
> Key: AIRFLOW-1014
> URL: https://issues.apache.org/jira/browse/AIRFLOW-1014
> Project: Apache Airflow
> Issue Type: Bug
> Components: core, scheduler
> Affects Versions: Airflow 1.8
> Reporter: Ruslan Dautkhanov
> Assignee: Dan Davydov
> Fix For: 1.8.1
>
> Attachments: no-TI-dagruns.png
>
>
> `depends_on_past` code assumes previous dag_run had at least on TI.
> This assumption is not (always) correct.
> For example, some of my dag runs were failing (one of the problems was
> AIRFLOW-1012). So a couple of dag runs have no task instances:
> !no-TI-dagruns.png!
> So scheduler run fails with "NoResultFound: No row was found for one()".
> Below complete error stack
> {noformat}
> [2017-03-19 20:24:50,795] {models.py:4024} DagFileProcessor3138 INFO -
> Updating state for <DagRun DISCOVER-Oracle-Load @ 2017-03-19 20:24:22.631102:
> manual__2017-03-19T20:24:22.631102, externally triggered: True> considering 9
> task(s)
> [2017-03-19 20:24:50,820] {jobs.py:354} DagFileProcessor3138 ERROR - Got an
> exception! Propagating...
> Traceback (most recent call last):
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/jobs.py",
> line 346, in helper
> pickle_dags)
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/utils/db.py",
> line 53, in wrapper
> result = func(*args, **kwargs)
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/jobs.py",
> line 1581, in process_file
> self._process_dags(dagbag, dags, ti_keys_to_schedule)
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/jobs.py",
> line 1174, in _process_dags
> self._process_task_instances(dag, tis_out)
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/jobs.py",
> line 905, in _process_task_instances
> session=session):
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/utils/db.py",
> line 53, in wrapper
> result = func(*args, **kwargs)
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/models.py",
> line 1116, in are_dependencies_met
> session=session):
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/models.py",
> line 1140, in get_failed_dep_statuses
> dep_context):
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/ti_deps/deps/base_ti_dep.py",
> line 94, in get_dep_statuses
> for dep_status in self._get_dep_statuses(ti, session, dep_context):
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/ti_deps/deps/prev_dagrun_dep.py",
> line 57, in _get_dep_statuses
> previous_ti = ti.previous_ti
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/utils/db.py",
> line 53, in wrapper
> result = func(*args, **kwargs)
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/models.py",
> line 1089, in previous_ti
> return last_dagrun.get_task_instance(self.task_id, session=session)
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/utils/db.py",
> line 53, in wrapper
> result = func(*args, **kwargs)
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/airflow/models.py",
> line 3973, in get_task_instance
> TI.task_id == task_id
> File
> "/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/sqlalchemy/orm/query.py",
> line 2699, in one
> raise orm_exc.NoResultFound("No row was found for one()")
> NoResultFound: No row was found for one()
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)