Changing levels with an auto-released particle system will cause cooked builds to crash.

This is a regression. This crash does not occur in 4.25

Steps to Reproduce
  1. Create a new Particle System
  2. Add a GPU Sprites TypeData module to the system
  3. Create a new blueprint actor
  4. On the actor's begin play event add a Spawn Emitter Attached node
  5. Set the template to the Particle System from step 1
  6. Use the default scene root as the Attach to Component
  7. Set the pooling method to Auto Release
  8. Add the actor to the default level for the project
  9. In the level blueprint for that level add an event for the key "1" pressed
  10. On that event call Get Current Level Name and use that with Open Level to reload the level
  11. Cook the game for windows
  12. Run the game and press 1


The game will crash with the pop-up dialog saying "Fatal error!"


Windows::EnterCriticalSection(Windows::CRITICAL_SECTION *) Line 215 C++

FWindowsCriticalSection::Lock() Line 47 C++



(FWindowsCriticalSection *) Line 39 C++

FParticleTileAllocator::Free(int) Line 181 C++

FParticleSimulationResources::FreeTile(unsigned int Tile) Line 474 C++

FGPUSpriteParticleEmitterInstance::ReleaseSimulationResources() Line 3895 C++

[External Code]

UParticleSystemComponent::ResetParticles(bool bEmptyInstances) Line 5756 C++

UObject::ConditionalBeginDestroy() Line 996 C++

UnhashUnreachableObjects(bool bUseTimeLimit, float TimeLimit) Line 2112 C++

CollectGarbageInternal(EObjectFlags KeepFlags, bool bPerformFullPurge) Line 2051 C++

CollectGarbage(EObjectFlags KeepFlags, bool bPerformFullPurge) Line 2155 C++

UEngine::TrimMemory() Line 13142 C++

UEngine::LoadMap(FWorldContext & WorldContext, FURL URL, UPendingNetGame * Pending, FString & Error) Line 12773 C++

Have Comments or More Details?

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

Login to Vote

Fix Commit15051872
Release Commit15083151
CreatedJan 6, 2021
ResolvedJan 12, 2021
UpdatedSep 19, 2021