Description

Geometry cahces check if they are in the game thread, which causes a crash when their packages are async loaded in a cooked build.

Steps to Reproduce
  1. Create an actor with a geometry cache object reference
  2. Create another actor that has a soft object reference to the first actor
  3. Place the second actor into the level
  4. Enable "Async Loading Thread Enabled" in the Package Streaming project settings
  5. Create a cooked build and launch it

RESULT

The client will crash on a check in FGeometryCacheStreamingManager::AddGeometryCache(UGeometryCacheTrackStreamable * Cache) Line 228 C++

Callstack
  1. Win64-DebugGame.exe!FGeometryCacheStreamingManager::AddGeometryCache(UGeometryCacheTrackStreamable * Cache) Line 228 C++
  2. Win64-DebugGame.exe!FObjectInitializer::PostConstructInit() Line 2770 C++
  3. Win64-DebugGame.exe!FObjectInitializer::~FObjectInitializer() Line 2628 C++
  4. Win64-DebugGame.exe!StaticConstructObject_Internal(UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags, EInternalObjectFlags InternalSetFlags, UObject * InTemplate, bool bCopyTransientsFromClassDefaults, FObjectInstancingGraph * InInstanceGraph, bool bAssumeTemplateIsArchetype) Line 3088 C++
  5. Win64-DebugGame.exe!FAsyncPackage::EventDrivenCreateExport(int LocalExportIndex) Line 3490 C++
  6. Win64-DebugGame.exe!FAsyncPackage::ProcessImportsAndExports_Event() Line 3935 C++
  7. [Inline Frame] Win64-DebugGame.exe!FAsyncPackage::Event_ProcessImportsAndExports() Line 2981 C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-74675 in the post.

7
Login to Vote

Fixed
Fix Commit9836523
Main Commit9836584
Release Commit9836523
CreatedMay 15, 2019
ResolvedOct 25, 2019
UpdatedJan 25, 2021