Description

We are regularly hitting a deadlock on 5.8.3.

We have one background worker evaluating an animation, holding the RigHierarchy's ElementsLock and waiting for the global GC lock

And one Background worker inside garbage collection holding up the release of the global GC lock and calling `URigHierarchy::AddReferencedObjects(UObject *, FReferenceCollector &)`, which tries to lock ElementsLock.

This occurs basically 100% for us when playing for a reasonable amount of time, please advise on a fix.

Callstack

We are regularly hitting a deadlock on 5.8.3.

We have one background worker evaluating an animation, holding the RigHierarchy's ElementsLock and waiting for the global GC lock (callstack snippet below).

And one Background worker inside garbage collection holding up the release of the global GC lock and calling `URigHierarchy::AddReferencedObjects(UObject *, FReferenceCollector &)`, which tries to lock ElementsLock.

This occurs basically 100% for us when playing for a reasonable amount of time, please advise on a fix.

Thank you!

  1. [}}{{Inline}}{{ }}{{Frame}}{{]{{ }}FGCCSyncObject::LockAsync()
  2. FGCScopeGuard::FGCScopeGuard()
  3. URigHierarchy::Reset_Impl(bool)
  4. URigHierarchy::CopyHierarchy(URigHierarchy{{ }}*)
  5. URigHierarchy::ResetToDefault()
  6. UControlRig::Execute(const{{ }}FName{{ }}&)
  7. URigVMHost::Evaluate_AnyThread()
  8. UControlRig::Evaluate_AnyThread()
  9. FAnimNode_ControlRigBase::ExecuteConstructionIfNeeded()
  10. FAnimNode_ControlRigBase::Evaluate_AnyThread(FPoseContext{{ }}&)
  11. FAnimNode_ControlRig::Evaluate_AnyThread(FPoseContext{{ }}&)

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - ACT Character - Control Rig
Affects Versions5.8
CreatedOct 12, 2026
UpdatedOct 12, 2026
View Jira Issue