Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

utils: fix process races when killing processes #5721

Merged
merged 1 commit into from
Aug 5, 2019
Merged

utils: fix process races when killing processes #5721

merged 1 commit into from
Aug 5, 2019

Conversation

hblanks
Copy link
Contributor

@hblanks hblanks commented Aug 5, 2019

Jira

Description

  • Here are some details about my PR, including screenshots of any UI changes:

airflow.utils.helpers.reap_process_group() can throw uncaught OSErrors
if processes exit at the wrong time in its execution. Fix this by
catching all OSErrors that can arise due to a process race, and
returning from them when the error is ESRCH (process not found).

Traceback from a production system can be found in the JIRA above.

Tests

  • My PR adds the following unit tests OR does not need testing for this extremely good reason:

this functionality is already tested in tests.utils.test_helpers; reproducibly testing for additional cases in a process race can only be done with substantially more complicated tests.

Commits

  • My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":
    1. Subject is separated from body by a blank line
    2. Subject is limited to 50 characters (not including Jira issue reference)
    3. Subject does not end with a period
    4. Subject uses the imperative mood ("add", not "adding")
    5. Body wraps at 72 characters
    6. Body explains "what" and "why", not "how"

Documentation

No new functionality, so no new docs.

Code Quality

  • Passes flake8

airflow.utils.helpers.reap_process_group() can throw uncaught OSErrors
if processes exit at the wrong time in its execution. Fix this by
catching all OSErrors that can arise due to a process race, and
returning from them when the error is ESRCH (process not found).
Copy link
Member

@potiuk potiuk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice!

@potiuk potiuk merged commit 18d32d9 into apache:master Aug 5, 2019
potiuk pushed a commit that referenced this pull request Aug 5, 2019
airflow.utils.helpers.reap_process_group() can throw uncaught OSErrors
if processes exit at the wrong time in its execution. Fix this by
catching all OSErrors that can arise due to a process race, and
returning from them when the error is ESRCH (process not found).
potiuk pushed a commit that referenced this pull request Aug 6, 2019
airflow.utils.helpers.reap_process_group() can throw uncaught OSErrors
if processes exit at the wrong time in its execution. Fix this by
catching all OSErrors that can arise due to a process race, and
returning from them when the error is ESRCH (process not found).

(cherry picked from commit 18d32d9)
@ashb
Copy link
Member

ashb commented Aug 12, 2019

@potiuk When merging PRs can you ensure the merge message contains the Jira ticket reference please.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants