This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Recursing
Recipients Recursing, asvetlov, christian.heimes, yselivanov
Date 2020-05-22.09:29:10
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1590139750.66.0.29133421121.issue40727@roundup.psfhosted.org>
In-reply-to
Content
Minimal code to reproduce:
```
import ssl
import certifi
import gc
import asyncio


ca_path = certifi.where()
async def make_async_context() -> None:
    context = ssl.SSLContext(ssl.PROTOCOL_TLS)
    context.load_verify_locations(ca_path)
    await asyncio.sleep(1)


async def main(n: int) -> None:
    await asyncio.wait([make_async_context() for _ in range(n)])


gc.collect()
asyncio.run(main(2000))
input("Finished run, still using lots of memory :(")
gc.collect()
input("gc.collect() does not help :(")
```

Running this code on several linux machines (with python from 3.6.9 to 3.9.0a5, and openSSL from 1.1.1  11 Sep 2018 to 1.1.1g  21 Apr 2020) causes a significant memory leak, while on windows memory usage peaks around 1 GB but gets freed
History
Date User Action Args
2020-05-22 09:29:10Recursingsetrecipients: + Recursing, christian.heimes, asvetlov, yselivanov
2020-05-22 09:29:10Recursingsetmessageid: <1590139750.66.0.29133421121.issue40727@roundup.psfhosted.org>
2020-05-22 09:29:10Recursinglinkissue40727 messages
2020-05-22 09:29:10Recursingcreate