Skip to content

[3.11] gh-90155: Fix bug in asyncio.Semaphore and strengthen FIFO guarantee (GH-93222) #97019

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

Merged
merged 1 commit into from
Sep 22, 2022

Conversation

miss-islington
Copy link
Contributor

@miss-islington miss-islington commented Sep 22, 2022

The main problem was that an unluckily timed task cancellation could cause
the semaphore to be stuck. There were also doubts about strict FIFO ordering
of tasks allowed to pass.

The Semaphore implementation was rewritten to be more similar to Lock.
Many tests for edge cases (including cancellation) were added.
(cherry picked from commit 24e0379)

Co-authored-by: Cyker Way [email protected]

…antee (pythonGH-93222)

The main problem was that an unluckily timed task cancellation could cause
the semaphore to be stuck. There were also doubts about strict FIFO ordering
of tasks allowed to pass.

The Semaphore implementation was rewritten to be more similar to Lock.
Many tests for edge cases (including cancellation) were added.
(cherry picked from commit 24e0379)

Co-authored-by: Cyker Way <[email protected]>
Copy link
Member

@gvanrossum gvanrossum left a comment

Choose a reason for hiding this comment

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

@pablogsal I'm not sure whether this ought to go into 3.11.0 or 3.11.1. The cancel-related bug was introduced in March 2022 and backported all the way to 3.9. But it's a lot of code to disturb a release candidate with.

@miss-islington
Copy link
Contributor Author

Status check is done, and it's a success ✅.

@miss-islington miss-islington merged commit 773dbb9 into python:3.11 Sep 22, 2022
@miss-islington miss-islington deleted the backport-24e0379-3.11 branch September 22, 2022 16:58
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.

4 participants