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

_Py_FinishPendingCalls() Doesn't Necessarily Run All Remaining Pending Calls #118297

Open
ericsnowcurrently opened this issue Apr 25, 2024 · 0 comments
Labels
3.12 bugs and security fixes 3.13 bugs and security fixes interpreter-core (Objects, Python, Grammar, and Parser dirs) type-bug An unexpected behavior, bug, or error

Comments

@ericsnowcurrently
Copy link
Member

ericsnowcurrently commented Apr 25, 2024

Bug report

Bug description:

In Python/ceval_gil.c, _Py_FinishPendingCalls() calls make_pending_calls() once. make_pending_calls() will fail with the first pending call that fails (returns a non-zero value), leaving any remaining pending calls in the queue. _Py_FinishPendingCalls() basically throws away the error and walks away.

Instead, _Py_FinishPendingCalls() should keep trying until there are no pending calls left in the queue.

(I found this while working on gh-110693.)

CPython versions tested on:

3.13

Operating systems tested on:

No response

Linked PRs

@ericsnowcurrently ericsnowcurrently added type-bug An unexpected behavior, bug, or error interpreter-core (Objects, Python, Grammar, and Parser dirs) 3.12 bugs and security fixes 3.13 bugs and security fixes labels Apr 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.12 bugs and security fixes 3.13 bugs and security fixes interpreter-core (Objects, Python, Grammar, and Parser dirs) type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

No branches or pull requests

1 participant