Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.1k
gh-128479: fix asyncio staggered race leaking tasks, and logging unhandled exception.append exception#128475
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
gh-128479: fix asyncio staggered race leaking tasks, and logging unhandled exception.append exception#128475
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Uh oh!
There was an error while loading.Please reload this page.
for task in running_tasks: | ||
task.cancel(*ex.args) | ||
on_completed_fut = None | ||
if __debug__ and unhandled_exceptions: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
probably this should just always raise it, not sure why this was suppressed in the original code
Misc/NEWS.d/next/Library/2025-01-04-11-10-04.gh-issue-128479.jvOrF-.rst OutdatedShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
I haven't stayed up-to-date with thestaggered_race
problems. Did we adopt some of aiohttp's tests?
Misc/NEWS.d/next/Library/2025-01-04-11-10-04.gh-issue-128479.jvOrF-.rst OutdatedShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
…vOrF-.rstCo-authored-by: Peter Bierma <zintensitydev@gmail.com>
Did you mean aiohappyeyeballs? No those have yet to be added |
Ah yeah, aiohappyeyeballs. Can we run their (old) test suite against this PR? I don't want another release blocker fiasco. |
graingert commentedJan 4, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
@ZeroIntensity I got it running against the newest suite:graingert/aiohappyeyeballs@8587b00#diff-d38ea0c7de1f2c4e6030c2e14c786b426be1f20310d14997973c0c1f7621d0e4L33 but it failed on a test that multiple winners can complete. This is not acceptable for the cpython implementation, because it would result in connection objects being left unclosed and result in ResourceWarnings. I'm not sure which test suite is the old test suite you refer to, do you have a commit hash for that? |
I don't have a commit hash, but I mean "old" as in when aiohappyeyeballs was still using our |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Sorry for dropping the ball here. Looks mostly good, with a few edge cases/nitpicks to be dealt with.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
ec91e1c
intopython:mainUh oh!
There was an error while loading.Please reload this page.
Thanks@graingert for the PR, and@ambv for merging it 🌮🎉.. I'm working now to backport this PR to: 3.12, 3.13. |
…g unhandled exception.append exception (pythonGH-128475)(cherry picked from commitec91e1c)Co-authored-by: Thomas Grainger <tagrain@gmail.com>Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
GH-129227 is a backport of this pull request to the3.13 branch. |
Sorry@graingert and@ambv, I had trouble completing the backport.
|
…g unhandled exception.append exception (pythonGH-128475)(cherry picked from commitec91e1c)Co-authored-by: Thomas Grainger <tagrain@gmail.com>Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
GH-129228 is a backport of this pull request to the3.12 branch. |
The misleading comment by miss-islington is actually an improvement over the previous behavior. There were HTTP timeouts in PR creation so Stamina retried them a few times, not getting a response in time. The final retry returned HTTP 422 since one of the previous retries actually managed to create a PR. And this HTTP 422 is the basis of miss-islington's comment about not being able to complete the backport. |
…ng unhandled exception.append exception (GH-128475) (#129227)gh-128479: fix asyncio staggered race leaking tasks, and logging unhandled exception.append exception (GH-128475)(cherry picked from commitec91e1c)Co-authored-by: Thomas Grainger <tagrain@gmail.com>Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
…ng unhandled exception.append exception (GH-128475) (#129228)gh-128479: fix asyncio staggered race leaking tasks, and logging unhandled exception.append exception (GH-128475)(cherry picked from commitec91e1c)Co-authored-by: Thomas Grainger <tagrain@gmail.com>Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
related aiohttp issueaio-libs/aiohttp#10506In#101 we replaced the staggered race implementation since the cpython version had racesthat were not fixed at the time. cpython has since updated the implementation to fixadditional races. Our current implementation still has problems with cancellationand cpython has fixed that inpython/cpython#128475andpython/cpython#124847This PR ports the latest cpython implementation
Uh oh!
There was an error while loading.Please reload this page.
Issue currently pending, but this fixes the following exception when running under anyio's pytest plugin, or logging unhandled asyncio exceptions:
https://github.com/Chia-Network/chia-blockchain/actions/runs/12586550910/job/35084132471#step:16:1813