[issue32038] Add API to intercept socket.close()

Yury Selivanov report at bugs.python.org
Thu Nov 16 11:18:01 EST 2017


Yury Selivanov <yselivanov at gmail.com> added the comment:

> It's worse than a resource leak - the same file descriptor number could be reused for a different file/socket, and then depending on the selector in use, you could see the data from a completely different connection. 

I actually debugged a bug like this in asyncio code once.  Took me quite a bit of time to figure it out.

> I did see a bug like this years ago (in libcurl), although it's not a common problem. I'd use the proposed hook if it existed, but it seems like an intrusive solution to a rare issue.

I don't think the proposed solution is too intrusive.  If we don't like the "set a callback to intercept all socket.close()" idea, we can change it to: "add socket.add_close_callback() method to the socket object."

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue32038>
_______________________________________


More information about the Python-bugs-list mailing list