[
https://issues.apache.org/jira/browse/AIRFLOW-6397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17005350#comment-17005350
]
ASF subversion and git services commented on AIRFLOW-6397:
----------------------------------------------------------
Commit 862296ace1d1eb0cab023933126c37968130b80a in airflow's branch
refs/heads/v1-10-test from Daniel Standish
[ https://gitbox.apache.org/repos/asf?p=airflow.git;h=862296a ]
[AIRFLOW-6397] ensure sub_process attribute exists before trying to kill it
(#6958)
(cherry picked from commit 0f7c4563d2f8885e12312aae72bc70a22f734894)
> Check for `sub_process` before trying to get pid in bash operator on kill
> -------------------------------------------------------------------------
>
> Key: AIRFLOW-6397
> URL: https://issues.apache.org/jira/browse/AIRFLOW-6397
> Project: Apache Airflow
> Issue Type: Bug
> Components: operators
> Affects Versions: 1.10.7
> Reporter: Daniel Standish
> Assignee: Daniel Standish
> Priority: Major
> Fix For: 1.10.8
>
>
> test {{test_mark_success_no_kill}} in {{TestLocalTaskJob}} is very flakey
> i found that one reason is that the test may attempt to kill the task before
> the subprocess is created and stored as an attribute
> For example:
> {code}
> [2019-12-29 15:03:51,963] {bash_operator.py:116} INFO - Running command:
> sleep 600
> [2019-12-29 15:03:51,967] {helpers.py:315} INFO - Sending Signals.SIGTERM to
> GPID 57093
> [2019-12-29 15:03:51,968] {taskinstance.py:913} ERROR - Received SIGTERM.
> Terminating subprocesses.
> [2019-12-29 15:03:51,970] {bash_operator.py:143} INFO - Sending SIGTERM
> signal to bash process group
> [2019-12-29 15:03:51,970] {taskinstance.py:913} ERROR - Received SIGTERM.
> Terminating subprocesses.
> [2019-12-29 15:03:51,982] {bash_operator.py:143} INFO - Sending SIGTERM
> signal to bash process group
> [2019-12-29 15:03:51,982] {taskinstance.py:1078} ERROR - 'BashOperator'
> object has no attribute 'sub_process'
> Traceback (most recent call last):
> File "/Users/dstandish/code/airflow/airflow/models/taskinstance.py", line
> 945, in _run_raw_task
> result = task_copy.execute(context=context)
> File "/Users/dstandish/code/airflow/airflow/operators/bash_operator.py",
> line 123, in execute
> preexec_fn=pre_exec)
> File "/Users/dstandish/.pyenv/versions/3.7.5/lib/python3.7/subprocess.py",
> line 800, in __init__
> restore_signals, start_new_session)
> File "/Users/dstandish/.pyenv/versions/3.7.5/lib/python3.7/subprocess.py",
> line 1505, in _execute_child
> part = os.read(errpipe_read, 50000)
> File "/Users/dstandish/code/airflow/airflow/models/taskinstance.py", line
> 914, in signal_handler
> task_copy.on_kill()
> File "/Users/dstandish/code/airflow/airflow/operators/bash_operator.py",
> line 144, in on_kill
> os.killpg(os.getpgid(self.sub_process.pid), signal.SIGTERM)
> AttributeError: 'BashOperator' object has no attribute 'sub_process'
> [2019-12-29 15:03:51,988] {taskinstance.py:1123} INFO - Marking task as
> FAILED.dag_id=test_mark_success, task_id=task1,
> execution_date=20160101T000000, start_date=20191229T230351,
> end_date=20191229T230351
> [2019-12-29 15:03:52,022] {helpers.py:281} INFO - Process
> psutil.Process(pid=57093, status='terminated') (57093) terminated with exit
> code 1
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)