Description

Consider an actor containing a Niagara Particle System Component, which is instantiated from another actor's Child Actor Component. When initializing PIE on a World Partition level containing this setup, the child actor's UNiagaraComponent::SendRenderDynamicData_Concurrent() may be called after the parent's ChildActorComponent has been destroyed, potentially causing a crash.

So far, the only reliable way to reproduce this bug is to nest 3 levels of actors inside other actors' ChildActorComponents (see Steps to Reproduce), but it is not yet clear if the crash may or may not occur in simpler scenarios. Also, the crash has not yet been observed on non-world-partition levels, and also not with other PrimitiveComponent subtypes on the innermost actor.

The related UDN case (https://udn.unrealengine.com/s/case/500QP00000CsOmRYAV/crash-when-loading-into-pie-world-actorcomponentcppsendrenderdynamicdataconcurrent) contains one possible call stack of the crash.

 

Steps to Reproduce
  • Create a new actor blueprint named "BP_Parent"
  • Create a new actor blueprint named "BP_Child1"
  • Create a new actor blueprint named "BP_Child2"
  • Create a new actor blueprint named "BP_Child3"
  • Edit "BP_Parent", add a ChildActorComponent, set ChildActorClass to "BP_Child1"
  • Edit "BP_Child1", add a ChildActorComponent, set ChildActorClass to "BP_Child2"
  • Edit "BP_Child2", add a ChildActorComponent, set ChildActorClass to "BP_Child3"
  • Edit "BP_Child3", add a NiagaraParticleSystemComponent. Optionally create and set a NiagaraSystemAsset (may not be necessary)
  • Create new level based on the Open World template
  • Place an instance of "BP_Parent" on the world
  • Close and reopen the Editor and the created test level
  • PIE --> Crash!

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentUE - Niagara
Affects Versions5.4
Target Fix5.5
Fix Commit34847799
CreatedJun 25, 2024
ResolvedJul 16, 2024
UpdatedAug 20, 2024
View Jira Issue