Skip to content

[3.12] gh-132969: Fix exception/hang shutdown(wait=False) and a task exited abnormally #133220

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

Closed
wants to merge 2 commits into from

Conversation

ogbiggles
Copy link

@ogbiggles ogbiggles commented Apr 30, 2025

When shutdown is called with wait=False, the executor thread keeps running even after the ProcessPoolExecutor's state is reset. The executor then tries to replenish the worker processes pool resulting in an error and a potential hang when it comes across a worker that has died. Fixed the issue by having _adjust_process_count() return without doing anything if the ProcessPoolExecutor's state has been reset.

Added unit tests to validate two scenarios:
max_workers < num_tasks (exception)
max_workers > num_tasks (exception + hang)

…sk exited abnormally

When shutdown is called with wait=False, the executor thread keeps running
even after the ProcessPoolExecutor's state is reset. The executor then tries
to replenish the worker processes pool resulting in an error and a potential hang
when it comes across a worker that has died. Fixed the issue by having
_adjust_process_count() return without doing anything if the ProcessPoolExecutor's
state has been reset.

Added unit tests to validate two scenarios:
max_workers < num_tasks (exception)
max_workers > num_tasks (exception + hang)
@bedevere-app
Copy link

bedevere-app bot commented Apr 30, 2025

Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool.

If this change has little impact on Python users, wait for a maintainer to apply the skip news label instead.

@python-cla-bot
Copy link

python-cla-bot bot commented Apr 30, 2025

All commit authors signed the Contributor License Agreement.

CLA signed

@ogbiggles ogbiggles changed the title gh-132969: Fix exception/hang shutdown(wait=False) and a task exited abnormally [3.12] gh-132969: Fix exception/hang shutdown(wait=False) and a task exited abnormally Apr 30, 2025
@itamaro
Copy link
Contributor

itamaro commented Apr 30, 2025

thank you for the contribution, @ogbiggles. unfortunately, Python 3.12 is no longer accepting bug fixes, only security fixes.
if this issue still exists on main branch and/or the 3.13 branch, you can open a new PR for main.
I'll close this PR for now, but if this is a security fix, please re-open!

@itamaro itamaro closed this Apr 30, 2025
@ogbiggles
Copy link
Author

thank you for the contribution, @ogbiggles. unfortunately, Python 3.12 is no longer accepting bug fixes, only security fixes. if this issue still exists on main branch and/or the 3.13 branch, you can open a new PR for main. I'll close this PR for now, but if this is a security fix, please re-open!

Got it, thanks. Submitted a new PR #133222 for main branch.

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

Successfully merging this pull request may close these issues.

2 participants