Disable cleanup_closed for aiohttp.TCPConnector with cpython 3.11.1+ (#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 https://github.com/aio-libs/aiohttp/issues/7252 see https://github.com/python/cpython/pull/98540 * Update homeassistant/helpers/aiohttp_client.pypull/93044/head^2
parent
a9778c4236
commit
7d371a33bb
|
@ -37,6 +37,11 @@ SERVER_SOFTWARE = "{0}/{1} aiohttp/{2} Python/{3[0]}.{3[1]}".format(
|
|||
APPLICATION_NAME, __version__, aiohttp.__version__, sys.version_info
|
||||
)
|
||||
|
||||
ENABLE_CLEANUP_CLOSED = sys.version_info < (3, 11, 1)
|
||||
# Enabling cleanup closed on python 3.11.1+ leaks memory relatively quickly
|
||||
# see https://github.com/aio-libs/aiohttp/issues/7252
|
||||
# aiohttp interacts poorly with https://github.com/python/cpython/pull/98540
|
||||
|
||||
WARN_CLOSE_MSG = "closes the Home Assistant aiohttp session"
|
||||
|
||||
#
|
||||
|
@ -276,7 +281,7 @@ def _async_get_connector(
|
|||
ssl_context = ssl_util.get_default_no_verify_context()
|
||||
|
||||
connector = aiohttp.TCPConnector(
|
||||
enable_cleanup_closed=True,
|
||||
enable_cleanup_closed=ENABLE_CLEANUP_CLOSED,
|
||||
ssl=ssl_context,
|
||||
limit=MAXIMUM_CONNECTIONS,
|
||||
limit_per_host=MAXIMUM_CONNECTIONS_PER_HOST,
|
||||
|
|
Loading…
Reference in New Issue