[issue26278] BaseTransport.close() does not trigger connection_lost()

Sümer Cip report at bugs.python.org
Tue May 7 03:22:29 EDT 2019


Sümer Cip <sumerc at gmail.com> added the comment:

I do not know I still have the issue since I have circumvented the problem. I have been using Python3.4, I think it was one of the earliest asyncio implementations. The way it can be reproduced is as following: 
1) There are lots of active TCP connections connected to asyncio server (300-400 of them)
2) One of the clients close connection ungracefully(without sending a FIN)
3) We have a PING/PONG mechanism in the server (similar to http keep-alive), we call transport.close() on the socket if pong is not received within an interval.
connection_lost() event is never gets called for the socket. This is not happening all the time, this is a random issue, the key here is to disconnect client without sending a FIN and there is outgoing buffer for client.

Above is all I got.

Thanks!

----------

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


More information about the Python-bugs-list mailing list