MarkCompilationComplete CheckCompilingPSOs result assert

Hello,

this question was created in reference to: [PSO collection [Content removed] so I will just write what I have found out about it, and what was the fix for us.

Although I am not sure if it is hiding some bigger threading issue or if it is “proper” fix?

I think that something like this is happening based on some extra logs:

  1. New RequestA is created in PrecachePSOs and its collection task is dispatched and finished
  2. RequestA is waiting for compilation task
  3. RequestA is released ReleasePrecacheData before the compilation task finishes
  4. New RequestB is created for the same FMaterialPSOPrecacheParams. As the RequestA was released it will not find it and again new collection task is dispatched
  5. RequestA finished compilation task and invokes MarkCompilationComplete, where based on precache params it finds the new RequestB instead, which is not finished yet and the assert hits.

For example what i saw in logs:

[-14.16.19] [BoostPriority] RequestID: 5108

[-14.16.33] [ReleasePrecacheData] RequestID: 5108

[-14.18.07] [MarkCompilationComplete] RequestID: 5108, precache result RequestID: 6823

So we pass also the RequestID in:

[Image Removed]

Hello! Thanks for providing these details! I’ve updated the internal ticket with this information and we’re taking a look.