-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Windows file read coherence #1463
Comments
Hi @bfloch , We use the "Create to temporary file and atomic move into place" pattern for editing/replacing files that may be open in other apps, and have not (as far as I'm aware) experienced the kind of crashes you're seeing on Windows, and in fact, once the new file is in place, a
|
Thanks Sebastian. This is very helpful information and helped me pinpoint the issue further down within our oplock configuration of our windows facing fileserver. I was able to replicate an incoherent state with simple files, and while it is still interesting why a reload of a stage would fail/crash - I don't have enough information yet to verify that the behaviour is specific to USD. I don't think I have a real case against USD's codebase here, so I'll close the ticket and forward further question towards the mailing list, as suggested. |
Description of Issue
We have network mounts to our USD files.
When a USD file "A" is open in any DCC (!) replacing the underlying file will have no effect for any other USD files.
We replace file "A" with "B" on the server, but opening it in any other DCC will still open it as "A" as long as some process is holding on to it.
Reload Stage will have no effect either.
This was the weirdest behaviour since we could not see it with any other files, applications.
I am not a Windows Guru, but considering that by default a mapped file is used for loading - a mechanism that at least in Windows is mainly documented for sharing memory between processes, we wonder if that could have to do with it.
We tried exporting USDC_USE_PREAD=1 with no effect.
Note that when another thirdparty software, like powershells Get-FileHash reads from the file, not only does it get the right result,
but in this case it also corrupts the open USD Sessions.
After that, or when all USD processes close, the file open "B" as expected again.
This is a somewhat critical problem for us - at it breaks any expectations we might have on working within DCCs.
I hope this is reproducible for others - else we might need to look closer into own configurations or invest into techniques around the resolver instead.
This might be related to:
#108
#1377
Steps to Reproduce
Either close both files to flush it - or access the file via a separate app like Get-FileHash. In the latter case the USD state
is corrupted in the running DCCs. ReloadStage will crash for us.
System Information (OS, Hardware)
Windows 10
Package Versions
Any
Build Flags
Default
The text was updated successfully, but these errors were encountered: