Currently, there are several places in FAnimInstanceProxy and FAnimNode_Base (and derived classes) that rely on FindFunctionByName in order to resolve transitions, evaluate pins, etc.
This can happen on worker threads, and can occasionally cause crashes.
FExposedValueHandler::Initialize (called in FAnimNode_Base::Initialize) is one example.
Might be worth looking for similar calls that may also be thread unsafe.
Code task entered as bug
UE4Editor-Core.dll!FDebug::AssertFailed() Line 332
UE4Editor-CoreUObject.dll!TSparseArray<TSetElement<TPair<FName,UFunction * __ptr64> >,TSparseArrayAllocator<FDefaultAllocator,FDefaultBitArrayAllocator> >::AllocateIndex() Line 70
UE4Editor-CoreUObject.dll!TSet<TPair<FName,UFunction * __ptr64>,TDefaultMapKeyFuncs<FName,UFunction * __ptr64,0>,FDefaultSetAllocator>::Emplace<TPairInitializer<FName const & __ptr64,UFunction * __ptr64 const & __ptr64> >() Line 484
UE4Editor-CoreUObject.dll!UClass::FindFunctionByName() Line 4107
UE4Editor-CoreUObject.dll!UObject::FindFunctionChecked() Line 1117
UE4Editor-CoreUObject.dll!UObject::execVirtualFunction() Line 2257
UE4Editor-CoreUObject.dll!UObject::ProcessInternal() Line 925
UE4Editor-CoreUObject.dll!UFunction::Invoke() Line 4477
UE4Editor-CoreUObject.dll!UObject::ProcessEvent() Line 1308
UE4Editor-Engine.dll!FExposedValueHandler::Execute() Line 520
UE4Editor-AnimGraphRuntime.dll!FAnimNode_BlendSpacePlayer::Initialize() Line 55
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-Engine.dll!FAnimNode_StateMachine::SetState() Line 909
UE4Editor-Engine.dll!FAnimNode_StateMachine::Initialize() Line 265
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-AnimGraphRuntime.dll!FAnimNode_ApplyAdditive::Initialize() Line 15
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-AnimGraphRuntime.dll!FAnimNode_BlendListBase::Initialize() Line 25
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-Engine.dll!FAnimNode_StateMachine::SetState() Line 909
UE4Editor-Engine.dll!FAnimNode_StateMachine::Update() Line 445
UE4Editor-Engine.dll!FPoseLinkBase::Update() Line 190
UE4Editor-Engine.dll!FAnimNode_SaveCachedPose::PostGraphUpdate() Line 96
UE4Editor-Engine.dll!FAnimInstanceProxy::UpdateAnimationNode() Line 40
UE4Editor-Engine.dll!FAnimInstanceProxy::UpdateAnimation() Line 762
UE4Editor-Engine.dll!USkeletalMeshComponent::PerformAnimationEvaluation() Line 1357
UE4Editor-Engine.dll!FParallelAnimationEvaluationTask::DoTask() Line 107
UE4Editor-Engine.dll!TGraphTask<FParallelAnimationEvaluationTask>::ExecuteTask(TArray<FBaseGraphTask *,FDefaultAllocator> & NewTasks, ENamedThreads::Type CurrentThread=6) Line 868
UE4Editor-Core.dll!FTaskThreadAnyThread::ProcessTasks() Line 1255
UE4Editor-Core.dll!FTaskThreadAnyThread::ProcessTasksUntilQuit(int QueueIndex) Line 1149
UE4Editor-Core.dll!FTaskThreadBase::Run() Line 621
UE4Editor-Core.dll!FRunnableThreadWin::Run() Line 74
UE4Editor-Core.dll!FRunnableThreadWin::GuardedRun() Line 31
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-43461 in the post.
0 |
Component | OLD - Anim |
---|---|
Affects Versions | 4.13, 4.14, 4.15 |
Target Fix | 4.16 |
Created | Mar 29, 2017 |
---|---|
Resolved | Mar 30, 2017 |
Updated | May 18, 2020 |