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 ods
Recipients Elvis.Pranskevichus, Nikita Ilyasov, aaliddell, asvetlov, chris.jerdonek, lukasz.langa, miss-islington, nmatravolgyi, ods, yselivanov
Date 2021-05-24.13:02:10
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1621861330.56.0.982034566044.issue37658@roundup.psfhosted.org>
In-reply-to
Content
Re: msg393586
> See my comment in the PR for a suggestion about an alternative structure for wait_for, which may avoid this gap and hence prevent the leak (but I have not tested it!)

Unfortunately this didn't close the gap, so the leak persisted.

I did some research on the source of the error. There are circular references between instances of _SelectorSocketTransport and _SSLProtocolTransport (see attached image), therefore these objects are destroyed by garbage collector. The order might be arbitrary. When _SelectorSocketTransport is destroyed after _SSLProtocolTransport everything is ok, but with the opposite order we get the error printed. Here is description on how to reproduce this:
https://github.com/ods/bpo-37658#circular-references-when-using-ssltls
History
Date User Action Args
2021-05-24 13:02:10odssetrecipients: + ods, asvetlov, chris.jerdonek, Elvis.Pranskevichus, lukasz.langa, yselivanov, miss-islington, Nikita Ilyasov, aaliddell, nmatravolgyi
2021-05-24 13:02:10odssetmessageid: <1621861330.56.0.982034566044.issue37658@roundup.psfhosted.org>
2021-05-24 13:02:10odslinkissue37658 messages
2021-05-24 13:02:10odscreate