Opened 10 years ago

Last modified 10 years ago

#4936 new Bug report

Retrieving directory contents of remote FTP server should be on one thread only

Reported by: mariush Owned by:
Priority: normal Component: FileZilla Client
Keywords: Cc:
Component version: Operating system type: Windows
Operating system version:

Description

I work a lot with a ftp server that has a lot of files and subfolders in a folder. As it's a high traffic server, it needs some time to show the file list for that folder so I run almost every day into this following problem.

Filezilla is configured to do up to 3 uploads at the same time.
Server has /files/ folder in the root. Folder /files/ has about 2000 folders and 1500 files in it..

I'm dragging four files from the local files list on the /files/ folder.

Three upload threads are started and each sends command to retrieve the directory listing of /files/

Server simply times out in about 10 seconds because it can't process the three directory listing at the same time, so two of the files are right away sent to Failed Transfers tab.
The third thread manages to retrieve the directory listing, file is uploaded
The fourth file thread upload thread is started and no longer retrieves the directory list so it stores the file right away.
If I watch the Failed Transfers tab and click on "Reset queue..." right as the files appear there, the two failed files will be processed successfully.

The way I see it there's two problems about this...

  1. Files shouldn't be send to "Failed transfers" because an actual transfer attempt was not done - the directory listing failed. There should be a reconnect attempt after a few seconds, an attempt to retrieve the directory listing again (or be smart enough to see another thread got the directory listing already) and then try to store the files.

(It would be worth investigating if there are other cases where files are sent directly to "Failed transfers" even though no transfer was actually attempted.)

  1. Filezilla should be smart enough to see that if two or more threads try to get the same directory on the same server with the same user account and password, maybe it would be wise to use a mutex or something to force only one directory listing request.

Even nicer would be to have the queue system to have the directory listing as high priority and the four file uploads depending on this "directory listing job" being performed.

Change History (2)

comment:1 Changed 10 years ago by Tim Kosse

Status: newmoreinfo

Which version are you using?

comment:2 Changed 10 years ago by mariush

Status: moreinfonew

I'm using the same ftp server for more than 6 months, and going through Filezilla versions as they appear so I'm sure it's happening with the latest version also (I'm just not 100% sure because I updated to the last version right before I uploaded files to the server).

If you want to, I can try to record a short movie with Camtasia next time I have to upload files to that server at work.

Note: See TracTickets for help on using tickets.