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

GH-98539: fix ref cycle in _SSLProtocolTransport after close #98540

Merged
merged 1 commit into from
Oct 22, 2022

Conversation

kumaraditya303
Copy link
Contributor

@kumaraditya303 kumaraditya303 commented Oct 22, 2022

@gvanrossum gvanrossum merged commit 62bf5d8 into python:main Oct 22, 2022
@miss-islington
Copy link
Contributor

Thanks @kumaraditya303 for the PR, and @gvanrossum for merging it 🌮🎉.. I'm working now to backport this PR to: 3.11.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Oct 22, 2022
…ythonGH-98540)

(cherry picked from commit 62bf5d8)

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
@bedevere-bot
Copy link

GH-98551 is a backport of this pull request to the 3.11 branch.

@bedevere-bot bedevere-bot removed the needs backport to 3.11 only security fixes label Oct 22, 2022
@kumaraditya303 kumaraditya303 deleted the ssl-fix branch October 22, 2022 16:13
gvanrossum pushed a commit that referenced this pull request Oct 24, 2022
…GH-98540) (#98551)

GH-98539: fix ref cycle in `_SSLProtocolTransport` after close  (GH-98540)
(cherry picked from commit 62bf5d8)

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
pquentin added a commit to pquentin/rally that referenced this pull request May 4, 2023
Since python/cpython#98540 which was included in
Python 3.11.1, aiohttp can fail if two tasks are trying to close the
connection concurrently.
bdraco added a commit to home-assistant/core that referenced this pull request May 13, 2023
There is currently a relatively fast memory leak when using
cpython 3.11.2+ and cleanup_closed with aiohttp

For my production instance it was leaking ~450MiB per day
of `MemoryBIO`, `SSLProtocol`, `SSLObject`, `_SSLProtocolTransport`
`memoryview`, and `managedbuffer` objects

see aio-libs/aiohttp#7252
see python/cpython#98540
@Dreamsorcerer
Copy link
Contributor

This change makes it unsafe to call .abort() after being closed (which seems to be causing exceptions and severe memory leaks for some aiohttp users in 3.11.1+). We'll obviously add a check to aiohttp, but should .abort() be updated to be safe to call?

@gvanrossum
Copy link
Member

This change makes it unsafe to call .abort() after being closed (which seems to be causing exceptions and severe memory leaks for some aiohttp users in 3.11.1+). We'll obviously add a check to aiohttp, but should .abort() be updated to be safe to call?

Makes sense. Can you send a PR?

balloob pushed a commit to home-assistant/core that referenced this pull request May 14, 2023
…93013)

* Disable cleanup_closed for aiohttp.TCPConnector with cpython 3.11.2+

There is currently a relatively fast memory leak when using
cpython 3.11.2+ and cleanup_closed with aiohttp

For my production instance it was leaking ~450MiB per day
of `MemoryBIO`, `SSLProtocol`, `SSLObject`, `_SSLProtocolTransport`
`memoryview`, and `managedbuffer` objects

see aio-libs/aiohttp#7252
see python/cpython#98540

* Update homeassistant/helpers/aiohttp_client.py
@Dreamsorcerer
Copy link
Contributor

@gvanrossum #104474

balloob pushed a commit to home-assistant/core that referenced this pull request May 14, 2023
…93013)

* Disable cleanup_closed for aiohttp.TCPConnector with cpython 3.11.2+

There is currently a relatively fast memory leak when using
cpython 3.11.2+ and cleanup_closed with aiohttp

For my production instance it was leaking ~450MiB per day
of `MemoryBIO`, `SSLProtocol`, `SSLObject`, `_SSLProtocolTransport`
`memoryview`, and `managedbuffer` objects

see aio-libs/aiohttp#7252
see python/cpython#98540

* Update homeassistant/helpers/aiohttp_client.py
teharris1 pushed a commit to teharris1/home-assistant that referenced this pull request May 23, 2023
…ome-assistant#93013)

* Disable cleanup_closed for aiohttp.TCPConnector with cpython 3.11.2+

There is currently a relatively fast memory leak when using
cpython 3.11.2+ and cleanup_closed with aiohttp

For my production instance it was leaking ~450MiB per day
of `MemoryBIO`, `SSLProtocol`, `SSLObject`, `_SSLProtocolTransport`
`memoryview`, and `managedbuffer` objects

see aio-libs/aiohttp#7252
see python/cpython#98540

* Update homeassistant/helpers/aiohttp_client.py
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.

5 participants