Go Back   FlashFXP Forums > >

Project: FlashFXP Bug Reports Ticket Tools
ID: 1033 Category: FlashFXP Bug
Title: Files incorrectly skipped in some circumstances. Status: Closed
Severity: Minor Version: 5.1

Senior Member
DayCuts
04-04-2015, 08:42 PM
Files incorrectly skipped in some circumstances.

Build 3826.

In certain circumstances queued items are mistakenly skipped. This seems to be related to the unique mutex implementation added to resolve the issue reported here https://oss.azurewebsites.net/forum/track...ker_bugid=1027.

To reproduce.
1. Queue a number of folders for download and start the transfer.
2. Stop the transfer part way through the files in one of the folders.
3. Cause the remote source files to be moved (to force a remote file not found error)
It should be noted that 3. happened independently of me/flashfxp while my system was in hibernation for several hours.
4. Resume transfer. - Files are then correctly marked as failed.
5. Stop the queue again.
6. Edit the source 'path' field for the items that were failed as a result of the file not found errors. - Pointing to the new correct location.
7. Reset the modified queue entries and start the transfer again.

What happens then is that all the items are skipped with 'file exists' (as they would be if already being handled by another session, but there are no other active sessions). This occurs without flashfxp attempting to do anything on the remote side (no cwd etc).

8. Stop the queue again once it has begun working on the next folder in the queue.
9. Manually navigate and re-queue the folder containing the incorrectly skipped files.
10. Move it to the top of the queue and start the transfer.

Same result, with files incorrectly skipped.

It seems that the unique mutex is never reset/removed when perhaps it should be at some point? Or at least check if the local file actually exists before triggering the skip rule?

To resolve it and be able to download the files the session had to be closed.
FlashFXP Developer
bigstar
04-05-2015, 07:58 AM
Re: Files incorrectly skipped in some circumstances.

Thank you for bringing this to my attention.

Please try this update
ffxp5.1.0.3827.zip


This is just the flashfxp.exe so just copy it into your FlashFXP program folder.
Senior Member
DayCuts
04-08-2015, 03:13 AM
Re: Files incorrectly skipped in some circumstances.

Build 3827.

Tested this on multiple ftpd's with varying results. All sessions were closed between testing different ftpd's.

Server: ProFTPD 1.3.2c Server
Everything seems to work fine.
Code:
#session 1
[17:29:52] [L] PWD
[17:29:52] [L] 257 "/" is the current directory
[17:29:52] [L] PASV
[17:29:52] [L] 227 Entering Passive Mode (___)
[17:29:52] [L] Opening data connection IP: ___ PORT: ___
[17:29:52] [L] MLSD
[17:29:53] [L] 150 Opening ASCII mode data connection for MLSD
[17:29:53] [L] 226 Transfer complete
[17:29:53] [L] List Complete: 2,415 bytes in 0.72 seconds (2.4 KB/s)
[17:29:58] [L] CWD /darkangel
[17:29:58] [L] 250 CWD command successful
[17:29:58] [L] PWD
[17:29:59] [L] 257 "/darkangel" is the current directory
[17:29:59] [L] PASV
[17:29:59] [L] 227 Entering Passive Mode (___)
[17:29:59] [L] Opening data connection IP: ___ PORT: ___
[17:29:59] [L] MLSD
[17:29:59] [L] 150 Opening ASCII mode data connection for MLSD
[17:29:59] [L] 226 Transfer complete
[17:29:59] [L] List Complete: 992 bytes in 0.43 seconds (1.0 KB/s)
[17:29:59] [L] TYPE I
[17:29:59] [L] 200 Type set to I
[17:29:59] [L] PASV
[17:29:59] [L] 227 Entering Passive Mode (___)
[17:29:59] [L] Opening data connection IP: ___ PORT: ___
[17:29:59] [L] RETR c.off.swf
[17:29:59] [L] 150 Opening BINARY mode data connection for c.off.swf (128 bytes)
[17:29:59] [L] 226 Transfer complete
[17:29:59] Download: c.off.swf 128 bytes in 0.01 seconds (0.1 KB/s)
[17:29:59] [L] PASV
[17:29:59] [L] 227 Entering Passive Mode (___)
[17:29:59] [L] Opening data connection IP: ___ PORT: ___
[17:29:59] [L] RETR c.on.swf
[17:30:00] [L] 150 Opening BINARY mode data connection for c.on.swf (253 bytes)
[17:30:00] [L] 226 Transfer complete
[17:30:00] Download: c.on.swf 253 bytes in 0.00 seconds (0.2 KB/s)
[17:30:00] Transferred 2 Files (381 bytes) in 1 second (0.3 KB/s)
[17:30:00] Aborted by user

#session 2
[17:30:15] [L] RNFR darkangel
[17:30:15] [L] 350 File or directory exists, ready for destination name
[17:30:15] [L] RNTO darkangel_2
[17:30:15] [L] 250 Rename successful

#session 1 - just hitting ctrl+z to retry... repeated for each file
[17:33:09] [L] RETR DarkAngel.swf
[17:33:09] [L] 550 DarkAngel.swf: No such file or directory
[17:33:09] [L] Transfer Failed: DarkAngel.swf

#session 1 - after manually editing source path for failed files and then hitting ctrl+z to retry
[17:35:15] [L] CWD /darkangel_2
[17:35:15] [L] 250 CWD command successful
[17:35:15] [L] PWD
[17:35:15] [L] 257 "/darkangel_2" is the current directory
[17:35:15] [L] PASV
[17:35:15] [L] 227 Entering Passive Mode (___)
[17:35:15] [L] Opening data connection IP: ___ PORT: ___
[17:35:15] [L] MLSD
[17:35:15] [L] 150 Opening ASCII mode data connection for MLSD
[17:35:15] [L] 226 Transfer complete
[17:35:15] [L] List Complete: 992 bytes in 0.47 seconds (1.0 KB/s)
[17:35:15] [L] TYPE I
[17:35:15] [L] 200 Type set to I
[17:35:15] [L] PASV
[17:35:15] [L] 227 Entering Passive Mode (___)
[17:35:15] [L] Opening data connection IP: ___ PORT: ___
[17:35:15] [L] RETR DarkAngel.swf
[17:35:15] [L] 150 Opening BINARY mode data connection for DarkAngel.swf (28700 bytes)
[17:35:16] [L] 226 Transfer complete
[17:35:16] Download: DarkAngel.swf 28,700 bytes in 0.18 seconds (28.0 KB/s)
[17:35:16] [L] PASV
[17:35:16] [L] 227 Entering Passive Mode (___)
[17:35:16] [L] Opening data connection IP: ___ PORT: ___
[17:35:16] [L] RETR sect1.swf
[17:35:16] [L] 150 Opening BINARY mode data connection for sect1.swf (1175 bytes)
[17:35:16] [L] 226 Transfer complete
[17:35:16] Download: sect1.swf 1,175 bytes in 0.00 seconds (1.1 KB/s)
[17:35:16] [L] PASV
[17:35:16] [L] 227 Entering Passive Mode (___)
[17:35:16] [L] Opening data connection IP: ___ PORT: ___
[17:35:16] [L] RETR sect2.swf
[17:35:17] [L] 150 Opening BINARY mode data connection for sect2.swf (1175 bytes)
[17:35:17] [L] 226 Transfer complete
[17:35:17] Download: sect2.swf 1,175 bytes in 0.00 seconds (1.1 KB/s)
[17:35:17] [L] PASV
[17:35:17] [L] 227 Entering Passive Mode (___)
[17:35:17] [L] Opening data connection IP: ___ PORT: ___
[17:35:17] [L] RETR sect3.swf
[17:35:17] [L] 150 Opening BINARY mode data connection for sect3.swf (1175 bytes)
[17:35:17] [L] 226 Transfer complete
[17:35:17] Download: sect3.swf 1,175 bytes in 0.00 seconds (1.1 KB/s)
[17:35:17] [L] CWD /darkangel
[17:35:17] [L] 550 /darkangel: No such file or directory
[17:35:17] Transfer queue completed
[17:35:17] Transferred 4 Files (32,225 bytes) in 4 seconds (7.9 KB/s)
Server: DrFTPd 3
Does not work well at all - due to PRET the error occurs on PRET RETR instead of RETR and this seems to complicate and break things for flashfxp.
Code:
#session 1
[17:40:21] [L] PWD
[17:40:21] [L] 257 "/" is current directory
[17:40:21] [L] CWD /test
[17:40:21] [L] 250 Directory changed to /test
[17:40:21] [L] PWD
[17:40:22] [L] 257 "/test" is current directory
[17:40:22] [L] STAT -l
[17:40:23] [L] List Complete: 66 bytes in 0.88 seconds (0.1 KB/s)
[17:40:34] [L] CWD /test/darkangel
[17:40:35] [L] 250 Directory changed to /test/darkangel
[17:40:35] [L] PWD
[17:40:36] [L] 257 "/test/darkangel" is current directory
[17:40:36] [L] STAT -l
[17:40:37] [L] List Complete: 357 bytes in 0.88 seconds (0.3 KB/s)
[17:40:37] [L] TYPE I
[17:40:37] [L] 200 Command okay
[17:40:37] [L] PROT P
[17:40:37] [L] 200 Command okay
[17:40:37] [L] PRET RETR c.off.swf
[17:40:38] [L] 200 OK, planning for upcoming download
[17:40:38] [L] PASV
[17:40:38] [L] 227- Using slave for upcoming transfer
[17:40:38] [L] 227 Entering Passive Mode (___).
[17:40:38] [L] Opening data connection IP: ___ PORT: ___
[17:40:39] [L] RETR c.off.swf
[17:40:39] [L] 150 File status okay; about to open data connection from slave.
[17:40:40] [L] TLSv1.2 negotiation successful...
[17:40:40] [L] TLSv1.2 encrypted session using cipher ECDHE-ECDSA-AES256-SHA384 (256 bits)
[17:40:40] [L] 226 Transfer complete, 128B in 0.0 seconds (0B/s)
[17:40:40] Download: c.off.swf 128 bytes in 0.00 seconds (0.1 KB/s)
[17:40:40] Transferred 1 File (128 bytes) in 6 seconds (0.0 KB/s)
[17:40:40] Aborted by user

#session 2
[17:43:16] [L] RNFR darkangel
[17:43:16] [L] 350 File exists, ready for destination name
[17:43:16] [L] RNTO darkangel_2
[17:43:17] [L] 250 RNTO command successful.

#session 1 - just hitting ctrl+z to retry... repeated for each file
[17:43:57] [L] PRET RETR c.on.swf
[17:43:57] [L] 550 Requested action not taken. File unavailable (e.g., file not found, no access)
[17:43:57] [L] Transfer Failed: c.on.swf

#session 1 - after manually editing source path for failed files and then hitting ctrl+z to retry
[17:45:45] [L] CWD /test/darkangel_2
[17:45:45] [L] 550 FileNotFound: darkangel does not exist
[17:45:45] [L] Transfer Failed: c.on.swf
[17:45:45] [L] Transfer Failed: c.on.swf
[17:45:45] [L] CWD /test/darkangel_2
[17:45:46] [L] 550 FileNotFound: darkangel does not exist
[17:45:46] [L] Transfer Failed: DarkAngel.swf
[17:45:46] [L] Transfer Failed: DarkAngel.swf
[17:45:46] [L] CWD /test/darkangel_2
[17:45:46] [L] 550 FileNotFound: darkangel does not exist
[17:45:46] [L] Transfer Failed: sect1.swf
[17:45:46] [L] Transfer Failed: sect1.swf
[17:45:46] [L] CWD /test/darkangel_2
[17:45:46] [L] 550 FileNotFound: darkangel does not exist
[17:45:46] [L] Transfer Failed: sect2.swf
[17:45:46] [L] Transfer Failed: sect2.swf
[17:45:46] [L] CWD /test/darkangel_2
[17:45:47] [L] 550 FileNotFound: darkangel does not exist
[17:45:47] [L] Transfer Failed: sect3.swf
[17:45:47] [L] Transfer Failed: sect3.swf
[17:45:47] Transfer queue completed
[17:45:47] Transferred 0 Files (0 bytes) in 2 seconds (0.0 KB/s)
[17:45:47] 5 Files Failed

#session 1 - hitting ctrl+z again
[17:47:47] [L] Skip [File Exists]: c.on.swf
[17:47:47] [L] Skip [File Exists]: DarkAngel.swf
[17:47:47] [L] Skip [File Exists]: sect1.swf
[17:47:47] [L] Skip [File Exists]: sect2.swf
[17:47:47] [L] Skip [File Exists]: sect3.swf
[17:47:47] Transfer queue completed
[17:47:47] Transferred 0 Files (0 bytes) in 0.01 seconds (0.0 KB/s)
[17:47:47] Skipped 5 Files and 0 Folders
Server: glFTPd 2.05.1 (Jan 11 2015) 64BiT Linux+TLS(OpenSSL 1.0.1e 11 Feb 2013 - built on: Thu Jan 8 21:10:20 UTC 2015)+SSP
Everything seems to work fine.
Code:
#session 1
[17:52:16] [L] PWD
[17:52:16] [L] 257 "/" is current directory.
[17:52:16] [L] STAT -l
[17:52:17] [L] List Complete: 2,276 bytes in 0.80 seconds (2.2 KB/s)
[17:52:24] [L] CWD test
[17:52:25] [L] 250 CWD command successful.
[17:52:25] [L] PWD
[17:52:25] [L] 257 "/test" is current directory.
[17:52:25] [L] STAT -l
[17:52:26] [L] List Complete: 129 bytes in 0.77 seconds (0.1 KB/s)
[17:53:05] [L] CWD /test/darkangel
[17:53:05] [L] 250 CWD command successful.
[17:53:05] [L] PWD
[17:53:05] [L] 257 "/test/darkangel" is current directory.
[17:53:05] [L] STAT -l
[17:53:06] [L] List Complete: 395 bytes in 0.71 seconds (0.4 KB/s)
[17:53:06] [L] Calculating timezone offset of server...
[17:53:06] [L] MDTM c.off.swf
[17:53:06] [L] 213 20150408075043
[17:53:06] [L] Timezone offsets: Server: 0 seconds. Local: 36000 seconds. Difference: 36000 seconds.
[17:53:06] [L] TYPE I
[17:53:06] [L] 200 Type set to I.
[17:53:06] [L] PROT P
[17:53:07] [L] 200 Protection set to Private
[17:53:07] [L] PASV
[17:53:07] [L] 227 Entering Passive Mode (___)
[17:53:07] [L] Opening data connection IP: ___ PORT: ___
[17:53:07] [L] RETR c.off.swf
[17:53:07] [L] 150 Opening BINARY mode data connection for c.off.swf (128 bytes) using SSL/TLS.
[17:53:08] [L] TLSv1.2 negotiation successful...
[17:53:08] [L] TLSv1.2 encrypted session using cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256 bits)
[17:53:08] Download: c.off.swf 128 bytes in 0.00 seconds (0.1 KB/s)
[17:53:08] Transferred 1 File (128 bytes) in 3 seconds (0.0 KB/s)
[17:53:08] Aborted by user

#session 2
[17:56:41] [L] RNFR darkangel
[17:56:41] [L] 350 File exists, ready for destination name
[17:56:41] [L] RNTO darkangel_2
[17:56:41] [L] 250 RNTO command successful.

#session 1 - just hitting ctrl+z to retry... repeated for each file
[17:58:00] [L] PASV
[17:58:00] [L] 227 Entering Passive Mode (___)
[17:58:00] [L] Opening data connection IP: ___ PORT: ___
[17:58:00] [L] RETR c.on.swf
[17:58:00] [L] 550 c.on.swf: No such file or directory.
[17:58:00] [L] Data Socket Error: Failed TLSv1.2 negotiation, disconnected
[17:58:00] [L] Transfer Failed: c.on.swf

#session 1 - after manually editing source path for failed files and then hitting ctrl+z to retry
[17:59:06] [L] CWD /test/darkangel_2
[17:59:07] [L] 250 CWD command successful.
[17:59:07] [L] PWD
[17:59:07] [L] 257 "/test/darkangel_2" is current directory.
[17:59:07] [L] STAT -l
[17:59:08] [L] List Complete: 395 bytes in 0.71 seconds (0.4 KB/s)
[17:59:08] [L] PASV
[17:59:08] [L] 227 Entering Passive Mode (___)
[17:59:08] [L] Opening data connection IP: ___ PORT: ___
[17:59:08] [L] RETR c.on.swf
[17:59:08] [L] 150 Opening BINARY mode data connection for c.on.swf (253 bytes) using SSL/TLS.
[17:59:09] [L] TLSv1.2 negotiation successful...
[17:59:09] [L] TLSv1.2 encrypted session using cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256 bits)
[17:59:09] Download: c.on.swf 253 bytes in 0.00 seconds (0.2 KB/s)
#<snip> repeated for each file
[17:59:19] [L] CWD /test/darkangel
[17:59:19] [L] 250- Matched darkangel_2
[17:59:20] [L] 250 CWD command successful.
[17:59:20] [L] PWD
[17:59:20] [L] 257 "/test/darkangel_2" is current directory.
[17:59:20] [L] STAT -l
[17:59:21] [L] List Complete: 395 bytes in 0.71 seconds (0.4 KB/s)
[17:59:21] Transfer queue completed
[17:59:21] Transferred 5 Files (32,478 bytes) in 15 seconds (2.2 KB/s)
Ticket Tools
Subscribe to this Ticket


Posting Rules
You may not post new tickets

Smilies are On
[IMG] code is On
HTML code is Off


All times are GMT -5. The time now is 12:55 PM.

Parts of this site powered by vBulletin Mods & Addons from DragonByte Technologies Ltd. (Details)