What steps will reproduce the problem?
1. start the server
2. connect with a client
3. start a file transfer (RETR, STOR... it doesn't matter)
4. during the transfer issue a QUIT command
5. wait for transfer to finish
What is the expected output?
What do you see instead?
Once the transfer is finished it is expected that the client gets
disconnected by the server but this doesn't happen and the client will just
Internally the server will keep a reference to a FTPHandler instance which
will never be collected by the garbage collector as well as the connection
socket object, causing a memory leak.
The problem is that when the transfer is finished asynchat's
close_when_done() method is used instead of close().