We have encountered a situation where certain programmatic blocking file i/o tasks have lost consistency when accessing/manipulating files being replicated by DFS-R.
At the most basic level (in .NET, in case it matters):
File.Delete(filepath); // --> my understanding is that this should block until the operation completes File.Exists(filepath); // --> returns true (should logically be false) Thread.Sleep(1000); // wait a second File.Exists(filepath); // --> returns false
This situation seems to occur ONLY when DFS-R is enabled (all other variables accounted for).
Our setup: Application accesses file share \\fileserver\sharename. File server is Windows 2008 R2 that has a SAN mapped to a local drive which is shared. File server also has DFS-R enabled (not namespaced) with replication set up for another location over WAN.
Not sure if this is a .NET issue or a DFS-R issue (or something else), so trying to approach it from both ends.