This question was created in reference to: [Crash when using UBA for distributed shader [Content removed]
Was not able to add to that thread, but the final comment is incorrect. Sockets is only depended on by build.cs in a few scenarios, definitely not the standard windows scenario. Thus, on Windows, the UBA Controller will not work out of the box.
Steps to Reproduce
Start a project configured with UBA for shader compilation on Windows. Notice the failure.
Hi Arnout,
In the thread you linked I mentioned that the Sockets module is implicitly loaded by the HTTP module like so:
if (bPlatformSupportsCurl) { PrivateDependencyModuleNames.AddRange( new string[] { "Sockets", } ); ... }
And we load the HTTP module explicitly in UbaController. I can’t see how the C# property bPlatformSupportsCurl is false on Windows.
We can add this explicitly just like we do that for the HTTP module, but I also can’t reproduce this with the vanilla UE 5.6 editor from the EG launcher.
Kind regards
Laura
Unfortunately loading the HTTP module doesn’t seem to be enough for us, we have to explicitly add the socket loading for this to work.
Wonder if there’s a dependency/ordering issue caused by something. We can investigate.
How exactly are you trying to reproduce the issue on vanilla 5.6? Are you enabling UBA for shader compilation?
Yes, I enabled UBA for shader compilation but no other changes to a vanilla UE5.6 installation.
As you probably already know, you’ll need a Horde server and configure all these entries for a provider section in your <PROJECT>/Config/DefaultEngine.ini:
[Uba.Provider.Horde.Relay] ServerUrl=<YOUR-HORDE-SERVER-URL> SentryUrl=<YOUR-SENTRY-URL> Pool=<YOUR-POOL-NAME> Cluster=_auto ConnectionMode=relay Enabled=True
Then I pointed the UbaController to this provider in my <USER>/Documents/Unreal Engine/Engine/Config/UserEngine.ini file:
[UbaController] +Providers=Uba.Provider.Horde.Relay
With this I was able to see UBA shader compilation without the reported crash.
Hi,
One thing to note is that this is only an issue if shader compilation triggers during the editor load, if we have already loaded into the editor “Sockets” ends up being loaded through some other way.
Changing “\Engine\Shaders\Public\ShaderVersion.ush” will trigger this for us.
I wrote down a note to add the “Sockets” module to the explicitly loaded modules so I remember after our summer break. Please note that our office will be closed for the next two weeks.
Thanks and kind regards
Laura