Scenario: connect to any ftp, select several directories and synchronize (Alt-C Y). Compare and start copying.
After a while (random) the FTP connection hangs and never recovers. Pressing cancel displays a system message dialog "XXX Command failed!" (but very slowly)
Here comes the annoying bug: nothing can be done. The Window close and button clicks respond with ding (windows sound) but nothing happens. Clicking 100 times results in 100 dings. The option is end task or starting another session of TC. After copying several files the new session is getting non-responsive and so on... A simple attempt of retrieving a PHP framework from the server takes 15-20 minutes instead of 1 or max 2...
![Sad :-(](./images/smilies/icon_sad.gif)
Here is the ftp log (the first part is deleted, 100+ files copied without trouble):
...
PASV
227 Entering Passive Mode (37,140,192,109,30,242)
RETR protected/runtime/logs-orderprice/1002773.log
150 Accepted data connection
Download
Waiting for server...
226-File successfully transferred
226 0.009 seconds (measured here), 36.94 Kbytes per second
Copied (2014-11-04 20:25:32): ftp://xxxxxxx/manage/protected/runtime/logs-orderprice/1002773.log -> d:\Works - Web\xxxxx\protected\runtime\logs-orderprice\1002773.log 322 bytes, 19 kbytes/s
PASV
227 Entering Passive Mode (37,140,192,109,88,202)
RETR protected/runtime/logs-orderprice/1002775.log <-- here waits forever so I press cancel after a while
Cancel pressed!
CWD /manage
Cancel pressed!
PWD
Cancel pressed!
PWD
Cancel pressed!
PWD
Cancel pressed!
PWD
Cancel pressed!
CWD /manage
<- at this point the copy dialog disappears, but the synchronize dialog cannot be closed, the window close or 'Abort' button clicking responds with a ding but nothing happens.
Recovery: Task manager -> end task.
Observations:
- the connection will hang forever very likely with small files. A stupid but seemingly working solution is to hit 'Pause' frequently when syncing
![Smile :-)](./images/smilies/icon_smile.gif)
- the hang is happening regardless of the ftp server active/passive connection, etc. I have countless ftp connections from US to my home town in RO. I tried vsftpd and pure-ftpd on the server side (with many servers, with different timeouts and other tweaks). The same results always.
- the hang NEVER happens inside LAN
- sometimes, after 10-15 secs the connection recovers. Only a few recoveries are "supported", after more snappy retries the connection dies.
- in parallel I'm using other FTP connections (notepad++) to the same server, and the service is responding without trouble, while TC stands and waits
There could be implemented a watchdog-style parallel thread that eliminates the blocked FTP threads? For example, if the FTP connection thread isn't responsive for 5 secs, eliminate and replace with a new one? Just asking.