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.
How do I set a material as a post-processing material?
Why does the REMOVE method of map container remove elements have memory leaks?
How does TextureRenderTarget2D get TArray<uint8> type data?
What does the number (2152,1-34) in glsl error mean?
What is the difference between Camera and CineCamera?
What is the cause of the packaging error falling back to 'GameUserSettings' in ue5?
How does TArray loop correctly remove elements in blueprints?
How to delete some elements correctly when deleting an array loop?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-218666 in the post.
0 |
Component | UE - Niagara |
---|---|
Affects Versions | 5.4 |
Target Fix | 5.5 |
Fix Commit | 34847799 |
---|
Created | Jun 25, 2024 |
---|---|
Resolved | Jul 16, 2024 |
Updated | Aug 20, 2024 |