[
https://issues.apache.org/jira/browse/AIRFLOW-6397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17005153#comment-17005153
]
ASF GitHub Bot commented on AIRFLOW-6397:
-----------------------------------------
potiuk commented on pull request #6958: [AIRFLOW-6397] ensure sub_process
attribute exists before trying to kill
URL: https://github.com/apache/airflow/pull/6958
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> 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
>
> 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)