Our processing platform contains a large number of machines where a large number of applications create files locally and copy them to an Isilon NAS. It also contains a single consumer, on a separate machine, reading these files from the Isilon NAS. Intermittently, 1 out of 50000, the consumer will throw an access violation stating the "file is locked by another application". The writes to the NAS successfully complete 100% of the time.
The only connection point between the writers and the NAS is the following call to File.Copy(localfile, "\\naslocation\destfilename"). If the consumer retries to read the file it is successful every time.
Is File.Copy not dependable? Meaning, after File.Copy returns to the caller the destination file may not be available to another process? Does Windows perform buffering when writing to a remote share causing a lag between the return of File.Copy and the file being detected as locked by a different application on a different machine?
Thanks in advance.