[Cyberduck-trac] [Cyberduck] #6791: Cyberduck very slow to list directory containing multiple symbolic links over FTP

Cyberduck trac at trac.cyberduck.ch
Thu Aug 2 22:01:20 CEST 2012


#6791: Cyberduck very slow to list directory containing multiple symbolic links
over FTP
--------------------------+---------------------------
    Reporter:  firewing1  |      Owner:
        Type:  defect     |     Status:  new
    Priority:  normal     |  Milestone:
   Component:  core       |    Version:  4.2.1
    Severity:  normal     |   Keywords:
Architecture:  Intel      |   Platform:  Mac OS X 10.7
--------------------------+---------------------------
 I've noticed that Cyberduck can take quite some time listing directories
 that contain links over FTP/FTPS connections. It seems that the more there
 are, the slower the process gets:
 {{{
 NOOP
 200 Zzz...
 STAT /test
 213-STAT
 drwxr-xr-x    2 firewing   firewing         4096 Aug  2 14:44 .
 drwxr-x---   13 firewing   99               4096 Aug  2 14:44 ..
 lrwxrwxrwx    1 firewing   firewing           11 Aug  2 14:44
 linked_file_1 -> normal_file_1
 lrwxrwxrwx    1 firewing   firewing           12 Aug  2 14:44
 linked_file_2 -> normal_file_2
 -rw-r--r--    1 firewing   firewing            0 Aug  2 14:44
 normal_file_1
 -rw-r--r--    1 firewing   firewing            0 Aug  2 14:44
 normal_file_2
 213 End.
 CWD /test/linked_file_1
 550 Can't change directory to /test/linked_file_1: Not a directory
 CWD /test/normal_file_1
 550 Can't change directory to /test/normal_file_1: Not a directory
 CWD /test/linked_file_2
 550 Can't change directory to /test/linked_file_2: Not a directory
 CWD /test/normal_file_2
 550 Can't change directory to /test/normal_file_2: Not a directory
 }}}
 2 symlinks in 4.7s

 {{{
 NOOP
 200 Zzz...
 STAT /test
 213-STAT
 drwxr-xr-x    2 firewing   firewing         4096 Aug  2 14:47 .
 drwxr-x---   13 firewing   99               4096 Aug  2 14:44 ..
 lrwxrwxrwx    1 firewing   firewing           11 Aug  2 14:44
 linked_file_1 -> normal_file_1
 lrwxrwxrwx    1 firewing   firewing           12 Aug  2 14:44
 linked_file_2 -> normal_file_2
 lrwxrwxrwx    1 firewing   firewing           13 Aug  2 14:47
 linked_file_3 -> normal_file_3
 lrwxrwxrwx    1 firewing   firewing           13 Aug  2 14:47
 linked_file_4 -> normal_file_4
 lrwxrwxrwx    1 firewing   firewing           13 Aug  2 14:47
 linked_file_5 -> normal_file_5
 lrwxrwxrwx    1 firewing   firewing           13 Aug  2 14:47
 linked_file_6 -> normal_file_6
 lrwxrwxrwx    1 firewing   firewing           13 Aug  2 14:47
 linked_file_7 -> normal_file_7
 lrwxrwxrwx    1 firewing   firewing           13 Aug  2 14:47
 linked_file_8 -> normal_file_8
 lrwxrwxrwx    1 firewing   firewing           13 Aug  2 14:47
 linked_file_9 -> normal_file_9
 -rw-r--r--    1 firewing   firewing            0 Aug  2 14:44
 normal_file_1
 -rw-r--r--    1 firewing   firewing            0 Aug  2 14:44
 normal_file_2
 -rw-r--r--    1 firewing   firewing            0 Aug  2 14:47
 normal_file_3
 -rw-r--r--    1 firewing   firewing            0 Aug  2 14:47
 normal_file_4
 -rw-r--r--    1 firewing   firewing            0 Aug  2 14:47
 normal_file_5
 -rw-r--r--    1 firewing   firewing            0 Aug  2 14:47
 normal_file_6
 -rw-r--r--    1 firewing   firewing            0 Aug  2 14:47
 normal_file_7
 -rw-r--r--    1 firewing   firewing            0 Aug  2 14:47
 normal_file_8
 -rw-r--r--    1 firewing   firewing            0 Aug  2 14:47
 normal_file_9
 213 End.
 CWD /test/linked_file_1
 550 Can't change directory to /test/linked_file_1: Not a directory
 CWD /test/normal_file_1
 550 Can't change directory to /test/normal_file_1: Not a directory
 CWD /test/linked_file_2
 550 Can't change directory to /test/linked_file_2: Not a directory
 CWD /test/normal_file_2
 550 Can't change directory to /test/normal_file_2: Not a directory
 CWD /test/linked_file_3
 550 Can't change directory to /test/linked_file_3: Not a directory
 CWD /test/normal_file_3
 550 Can't change directory to /test/normal_file_3: Not a directory
 CWD /test/linked_file_4
 550 Can't change directory to /test/linked_file_4: Not a directory
 CWD /test/normal_file_4
 550 Can't change directory to /test/normal_file_4: Not a directory
 CWD /test/linked_file_5
 550 Can't change directory to /test/linked_file_5: Not a directory
 CWD /test/normal_file_5
 550 Can't change directory to /test/normal_file_5: Not a directory
 CWD /test/linked_file_6
 550 Can't change directory to /test/linked_file_6: Not a directory
 CWD /test/normal_file_6
 550 Can't change directory to /test/normal_file_6: Not a directory
 CWD /test/linked_file_7
 550 Can't change directory to /test/linked_file_7: Not a directory
 CWD /test/normal_file_7
 550 Can't change directory to /test/normal_file_7: Not a directory
 CWD /test/linked_file_8
 550 Can't change directory to /test/linked_file_8: Not a directory
 CWD /test/normal_file_8
 550 Can't change directory to /test/normal_file_8: Not a directory
 CWD /test/linked_file_9
 550 Can't change directory to /test/linked_file_9: Not a directory
 CWD /test/normal_file_9
 550 Can't change directory to /test/normal_file_9: Not a directory
 }}}
 9 symlinks in 39.4s

 4.7/2*9=21.2 seconds so this isn't a linear progression, which explains
 why things get much slower the more symlinks there are.

 I've confirmed this on two different servers, although both were running
 Pure-FTPd (one cPanel, one not).

-- 
Ticket URL: <http://trac.cyberduck.ch/ticket/6791>
Cyberduck <http://cyberduck.ch>
Open source FTP, SFTP, WebDAV, Cloud Files, Google Docs & Amazon S3 Browser for Mac & Windows.


More information about the Cyberduck-trac mailing list