Shreyas Joshi created AIRFLOW-1555:
--------------------------------------

             Summary: Backfill job gets killed 1 hour after starting
                 Key: AIRFLOW-1555
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-1555
             Project: Apache Airflow
          Issue Type: Bug
          Components: backfill
    Affects Versions: 1.8.1
         Environment: Airflow 1.8.1
Celery 3.1.23 with one coordinator, redis and 3 workers
Python 3.5.2
Debian GNU/Linux 8.9 (jessie)
snakebite uninstalled because it does not work with Python 3.5.2
MySQL 5.6
            Reporter: Shreyas Joshi


*What happens?*

After running for an hour tasks in backfill tasks die. The task logs show:


{code}
...
[2017-08-31 06:48:06,425] {jobs.py:2172} WARNING - Recorded pid 5451 is not a 
descendant of the current pid 21571
[2017-08-31 06:48:11,884] {jobs.py:2179} WARNING - State of this instance has 
been externally set to failed. Taking the poison pill. So long.
[2017-08-31 06:48:11,892] {helpers.py:220} WARNING - Terminating descendant 
processes of [<REDACTED>] PID: 5451
[2017-08-31 06:48:11,892] {helpers.py:224} WARNING - Terminating descendant 
process [<REDACTED>] PID: 5459
[2017-08-31 06:48:11,896] {helpers.py:231} WARNING - Waiting up to 5s for 
processes to exit...
...
{code}

The backfill logs show:

{code}
...
[2017-08-31 11:23:44,025] {jobs.py:1729} ERROR - Executor reports task instance 
<TaskInstance: dag_name.task_name 2017-08-30 02:00:00 [running]> finished 
(failed) although the task says its running. Was the task killed externally?
[2017-08-31 11:23:44,025] {models.py:1427} ERROR - Executor reports task 
instance <TaskInstance: analytics_events.page_views 2017-08-30 02:00:00 
[running]> finished (failed) although the task says its running. Was the task 
killed externally?
...
{code}

The Celery UI has the following exception, but status shows "success"

{code}
Traceback (most recent call last):
  File 
"/data/airflow-sources/.venv/lib/python3.5/site-packages/airflow/executors/celery_executor.py",
 line 56, in execute_command
    subprocess.check_call(command, shell=True)
  File "/usr/share/pyenv/versions/3.5.2/lib/python3.5/subprocess.py", line 581, 
in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'airflow run dag_name task_name 
2017-08-30T02:00:00 --pickle 14 --local' returned non-zero exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File 
"/data/airflow-sources/.venv/lib/python3.5/site-packages/celery/app/trace.py", 
line 240, in trace_task
    R = retval = fun(*args, **kwargs)
  File 
"/data/airflow-sources/.venv/lib/python3.5/site-packages/celery/app/trace.py", 
line 438, in __protected_call__
    return self.run(*args, **kwargs)
  File 
"/data/airflow-sources/.venv/lib/python3.5/site-packages/airflow/executors/celery_executor.py",
 line 59, in execute_command
    raise AirflowException('Celery command failed')
airflow.exceptions.AirflowException: Celery command failed
{code}

The tasks have timeouts explicitly set to 6 hours and SLA set to 5 hours. In 
the course of debugging this I also set dagrun_timeout to 6 hours. It did not 
make a difference.

Here is a thread on [stackoverflow | 
https://stackoverflow.com/questions/44274381/airflow-long-running-task-in-subdag-marked-as-failed-after-an-hour]
 that talks about a very similar issue.

These tasks run fine on our older Airflow 1.7. This is currently blocking our 
upgrade.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to