Launching multiple Editor processes at the same time with the USD Core plugin enabled can cause warnings to be logged like the following:
LogUsd: Warning: Failed to update LibraryPath for USD plugInfo.json file '<WorkspaceDir>/Engine/Binaries/ThirdParty/USD/UsdResources/Win64/plugins/hdSt/resources/plugInfo.json'
This is seemingly because FUnrealUSDWrapperModule::StartupModule calls IUsdClassesModule::UpdatePlugInfoFiles, which then tries to get an exclusive write lock on various plugin info files. When multiple processes start at the same time, this can cause the above warning, as one of the other processes can already have locked the file and thus cause the operation to fail.
When this happens, we’re running commandlets that don’t (intentionally) rely on this USD plugin, so this seems like a generic initialization routine. We run command-lines like the following for various different commandlets in parallel:
UnrealEditor.exe "Path\To\My\Project.uproject" -Log -Unattended -NoPause -NoSound -BuildMachine -MultiProcess -Run=MyCommandlet
I would hope that, in particular, the -MultiProcess argument would ensure that this issue would not happen.
We’ve also seen logs of the form:
LogUsd: Error: TF_DIAGNOSTIC_CODING_ERROR_TYPE: Could not find plugin for package resolver Usd_UsdzResolver
This happened immediately after all of the LibraryPaths for USD plugInfo.json calls completed - and for this process, they were all successful.
Is there anything we can do in the immediate term to fix this issue, please? Is this something that could be looked at and made safe for a future release?