Description

Licensee has reported a couple cases of an assert happening stemming from FRecastTileGenerator::AddReferencedObjects in a built game. They are limiting the MaxTileGeneratorTasks to 1. The crash occurred in game while there were 2 navmeshes (big agent and normal agent). They noticed that the tile generation task had finished in its own thread at the same time that the garbage collector ran its TFastReferenceCollector task that reset the array which was being looped through.

 

They have seen this one other time, but they do not have a any firm steps to be able to reproduce the issue. 

Steps to Reproduce

-

Callstack
DH-XSX-Test.exe!FWeakObjectPtr::Get() Line 81    C++DH-XSX-Test.exe!TWeakObjectPtr<UObject,FWeakObjectPtr>::Get() Line 131    C++DH-XSX-Test.exe!FNavigationRelevantData::GetOwner() Line 128    C++DH-XSX-Test.exe!FRecastTileGenerator::AddReferencedObjects(FReferenceCollector & Collector) Line 4410    C++DH-XSX-Test.exe!UGCObjectReferencer::AddReferencedObjects(UObject * InThis, FReferenceCollector & Collector) Line 31    C++DH-XSX-Test.exe!TFastReferenceCollector<FGCReferenceProcessor<9>,FGCCollector<9>,FGCArrayPool,9>::ProcessObjectArray(FGCArrayStruct & InObjectsToSerializeStruct, const TRefCountPtr<FGraphEvent> & MyCompletionGraphEvent) Line 696    C++DH-XSX-Test.exe!TFastReferenceCollector<FGCReferenceProcessor<9>,FGCCollector<9>,FGCArrayPool,9>::FCollectorTaskQueue::DoTask() Line 403    C++DH-XSX-Test.exe!TFastReferenceCollector<FGCReferenceProcessor<9>,FGCCollector<9>,FGCArrayPool,9>::FCollectorTaskProcessorTask::DoTask(ENamedThreads::Type) Line 434    C++DH-XSX-Test.exe!TGraphTask<TFastReferenceCollector<FGCReferenceProcessor<9>,FGCCollector<9>,FGCArrayPool,9>::FCollectorTaskProcessorTask>::ExecuteTask(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> & NewTasks, ENamedThreads::Type CurrentThread) Line 886    C++DH-XSX-Test.exe!FBaseGraphTask::Execute(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> &) Line 524    C++DH-XSX-Test.exe!FTaskThreadAnyThread::ProcessTasks() Line 1067    C++DH-XSX-Test.exe!FTaskThreadAnyThread::ProcessTasksUntilQuit(int QueueIndex) Line 889    C++DH-XSX-Test.exe!FTaskThreadBase::Run() Line 541    C++DH-XSX-Test.exe!FTaskThreadAnyThread::Run() Line 966    C++DH-XSX-Test.exe!FRunnableThreadWin::Run() Line 429    C++DH-XSX-Test.exe!FRunnableThreadWin::GuardedRun() Line 348    C++ 

Have Comments or More Details?

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

18
Login to Vote

Fixed
ComponentUE - AI - Navigation
Affects Versions4.27.25.1
Target Fix5.2
Fix Commit23926631
CreatedDec 9, 2022
ResolvedMay 30, 2023
UpdatedMay 30, 2023