Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.
BHarriger wrote: > We were recently bit by the NAV/CVSNT incompatibility > (wasn't aware of it until last week) so I'm now trying > to work out the problem with Symantec. At least in some versions of NAV in the past, deleting a file would not actually delete it immediately, but rather a few milliseconds later. Internally, to delete a file on NT, one has to do the following: 1. Open the file with Delete permission 2. Mark the file 'pending deletion' 3. Close the file Upon the last close of the file (it can be open multiple times....), the filesystem is supposed to make the file disappear, but I have not seen any official statement anywhere that ensures that this will be atomic or within a well known time frame. Many file system filters (NAV is one, FUNDELETE from SysInternals is another) delay the actual deletion of the file because they either mark it 'not pending deletion' before close and then do some work before deletion, or otherwise maintain another open handle to the same file. I don't know which API is used in CVSNT, but unlink(), remove() and whatever the Win32 API for this is, all map to the three items above in NT's Native API. The end result is that, although all phases of the deletion are successful, the file is _still_ there for some time (a few milliseconds to a few seconds!) after it was expected to disappear. And this can lead to many subtle bugs. I'm not 100% sure, but I think rename is guaranteed to be atomic (in the sense that a successful return from the rename call indicates that the filename has already changed on the filesystem, rather than that it will be renamed at some point in the future). If this is indeed so, then renaming the file into oblivion before deleting it (e.g., rename it to something like 'random-name-10897.deleteme' before deleting), will solve the conflict. Disclaimer: I solved the CVSNT/NAV conflict by disabling NAV altogether, but I have traced problems in other software in the past to being a result of the files not disappearing immediately when deleted. This is only a speculation.