Deadlock in Oodle init during cook - 5.7.3

We’re seeing a deadlock on cook when the ShaderCompilingThread triggers lazy init of Oodle compression. The lazy path calls IModularFeatures::RegisterModularFeature which broadcasts to delegates that try to acquire the GC lock, creating a circular lock dependency with the shader compilation mutex.

We’ve temporarily worked around this by deliberately initializing the Oodle compression format on the GameThread (by calling FCompression::GetCompressorVersion(NAME_Oodle); in LaunchEngineLoop.cpp)

Is this a known issue? I could not find any trace of it on UDN, but my search fu may not be strong enough!

[Attachment Removed]

Not a known issue AFAIK. Are you seeing this in the ShaderCompilerWorker process , or in Editor ? Can you post a call stack ?

[Attachment Removed]

[mention removed]​ I was running a cook via command line. I did post a callstack, and what I was doing in all the extra boxes on the question form, but now can only see the basic description?

[Attachment Removed]

Sorry, the interface we’re seeing for this on our end puts the pertinent info in weird places. We have the callstack.

Looks to be a bug. We’re not aware of anyone else running into this, not sure why it’s happening for you. For now your workaround should be fine.

[Attachment Removed]

Thanks [mention removed]​, I was / am confused as I can’t see any of that extra info I entered either. Anyway, please do let me know if I can provide any more details!

[Attachment Removed]

Forgot to update you on this, but a fix for this landed in 5.8. I’ll close this ticket unless there’s further questions!

[Attachment Removed]