PDA

View Full Version : new files, folders doesnt appears!


moonster
01-30-2007, 12:26 PM
Hi!

I used the search option in this site, but icant got answer.
So,
If i copy any file, or dir into my ftpdir,(vfs is OK, so its work correctly), but,
these files doesnt appears, when i connect to the ftp server.
The Refresh button did nothing. Rehash did nothing.
Only, if i shutdown the server, and restart manually...its help me.

Do u know other, easier way.
I turned off the cache in my ftp client.

thx

moo

nooob
04-13-2008, 07:35 AM
Same problem here.
Whenever i make a DIRECT change to the file system (not by FTP/VFS) the change doesnt appear until i restart the ftp.

Is this is a bug?

Yil
04-13-2008, 08:20 AM
ioFTPD determines if a cached directory is dirty by examining the directory timestamp. This means that any operation such as adding/deleting a file, etc which updates the directory will force a cache update next time you access it.

In particular, some tools for directory replication also copy the directory timestamp and I suppose this would confuse ioFTPD. Are you using one of these to copy the files around or just explorer? Look at the raw directory timestamp in the FTP listing with a "list -al" and see what the "." entry shows. Is it the same as what explorer is telling you if you view it's properties?

Is this a local filesystem? No virtualization involved?

Also, post your .vfs file and the directory path you are seeing this problem on. I want to make sure it's not a raided/merged directory, or you are cloaking a real directory with a mount point.

Verify that it isn't really the ftp client by restarting the client and seeing if you get the same answer.

What OS are you using?

Just for the record, I can modify a directory by creating, copying, or deleting a file either on that machine or via a networked fileshare and the FTP picks up the change just fine.

nooob
04-13-2008, 09:08 AM
I made some tests and actually directory refresh works.

I think the Problem is that the filename has some special characters.

there are accents like é in the name.
When i remove them and refresh in my ftp client the directory shows.



So this actually isnt a cache problem but it seems ioFTPD has problems showing dirs containing special characters

Yil
04-13-2008, 04:45 PM
ioFTPD isn't Unicode aware so it doesn't like weird names.

ioftpd1981
04-18-2009, 05:01 PM
I have v6.9.3, but I had also the same problem in older version(s):

My FTP shows two folders: 'Downloads' and 'Watch'. I have uTorrent configured to automatically load any *.torrent files in 'Watch' folder, start downloading data to 'Downloads' and delete *.torrent file from 'Watch'. This is working perfectly, However, If I upload *.torrent file to 'Watch' folder, ioFTPd is still showing me the *.torrent file and also there is no data in 'Downloads'. If I actually look at it in the system (not via FTP), there is data in 'Downloads' and there is nothing in 'Watch' -- and that is correct. Why is ioFTPD not showing real state of files as it is on hard drive???

1, list -al - DOESN'T SHOW IT.
2, It is remote system, running on TrueCrypt, no virtualization.
3, No special characters, no merged directories.
4, Same answer when you restart/reconnect FTP client or use different one (FlashFXP, TotalCmd).
5, Running on WinXP SP3.
6, Restart of ioFTPD helps.

* screenshots removed for showing directory names *

??? As I found out, folder was created on 4/18 at 23:34, but FTP is showing me two hours behind (21:34). Is this the issue? Why is it happening? ???

My configuration:

E:\Program Files\ioFTPD\etc\1.vfs:
----------------------------------------
"E:\Program Files\ioFTPD\FTP-ROOT-DIR" /
"E:\Downloads" /Downloads
"E:\Watch" /Watch

E:\Program Files\ioFTPD\system\ioFTPD.ini:
--------------------------------------------------
Only serious change I did is "Default_Directory_Attributes = 777 0:0"

Yil
04-19-2009, 12:22 AM
The FTP reports all timestamps in GMT/UTC so I'm guessing you're 2 hours off GMT. The REAL question is whether or not the directory timestamp is being updated when the contents of the directory are being changed. The system should update it when a file is created/removed, but will not do so if an existing file is modified... Assuming this happens when the the file is removed I don't see why the server won't go to disk because it invalidates the cache if the timestamp differs. Resolution on NTFS is 100ns which is fast enough that shouldn't be an issue but FAT is 2 seconds which could be the problem.

There are ways to make ioFTPD invalidate cached dirs which is what a script would normally do.

Easiest solution might just be to make your script wait 5 seconds after it sees a file appear assuming you are using FAT and the possible 2 second resolution is the issue... Or have the script update the timestamp on the dir after 5 seconds goes by or something...

ioftpd1981
04-19-2009, 09:44 AM
The FTP reports all timestamps in GMT/UTC so I'm guessing you're 2 hours off GMT. The REAL question is whether or not the directory timestamp is being updated when the contents of the directory are being changed. The system should update it when a file is created/removed, but will not do so if an existing file is modified... Assuming this happens when the the file is removed I don't see why the server won't go to disk because it invalidates the cache if the timestamp differs. Resolution on NTFS is 100ns which is fast enough that shouldn't be an issue but FAT is 2 seconds which could be the problem.

There are ways to make ioFTPD invalidate cached dirs which is what a script would normally do.

Easiest solution might just be to make your script wait 5 seconds after it sees a file appear assuming you are using FAT and the possible 2 second resolution is the issue... Or have the script update the timestamp on the dir after 5 seconds goes by or something...

Yil:

Correct, I am using FAT32. What you wrote would make sense with deleted file. BUT it doesn't make sense with data that are being downloaded - file is modified, but it still have to be visible! I don't think directory timestamp is updated as I checked "Pre-allocate all files" option:

http://img7.imageshack.us/img7/7335/downloading.png

However, If I disable this option, I have the same result.

Do you think option "Move completed downloads to" would help?
http://img7.imageshack.us/img7/2605/directories.png

Please note that it's not a script that is doing it, but "Automatically load .torrents from / Delete loaded .torrents" options. I cannot use your solution. What is the other options to make ioFTPD invalidate cached dirs?

This is critical bug as files on the disk are different from files visible via FTP!

Yil
04-19-2009, 01:01 PM
Um, use NTFS is the simplest solution hands down! :)

You can also use ioRecache by FtpServerTools. His site appears down, but here's a link to a copy.

ioRecache.1.0.0.zip (http://home.comcast.net/~yil/script-archive/SITE/ioRecache.1.0.0.zip)

o_dog
04-19-2009, 02:13 PM
Thre is absolutely no reason to use fat32, this is not a critical bug, people wanna use 286 to run ioFTPD on it's their problem not the coders.

ioftpd1981
04-19-2009, 04:37 PM
Thank you kindly guys, ioRecache did the job. Now I just have to find out how to create batch that will run every hour ioRecache.exe.