Hi.
We’ve been experiencing a crash that appears on loading a new level. It is not 100%, but after some amount of loading it occurs (it could be 1 load, could be 5).
Looks like it somehow related to the particle systems every time.
In the .log file it simply outputs:
But sometimes it writes a stacktrace. Sometimes we can take a stacktrace from the crashdump file. Here are 3 different stacktraces, but all they have in common this line:
Here are some crash stacktraces:
MemoryProfiler::GetAllocationRoot(AllocationRootWithSalt) __ptr64 0x00007ffb960494f9
retain_root_reference(AllocationRootWithSalt) 0x00007ffb9605fd4f
MemoryManager::Reallocate(void * __ptr64,unsigned __int64,unsigned __int64,MemLabelId const & __ptr64,AllocateOptions,char const * __ptr64,int) __ptr64 0x00007ffb9603f224
realloc_internal(void * __ptr64,unsigned __int64,unsigned __int64,MemLabelId const & __ptr64,AllocateOptions,char const * __ptr64,int) 0x00007ffb96041e9b
dynamic_array_detail::dynamic_array_data::reserve(unsigned __int64,unsigned __int64,unsigned __int64) __ptr64 0x00007ffb9692dd72
ParticleSystemParticles::array_reserve(unsigned __int64) __ptr64 0x00007ffb971bca91
ParticleSystem::Emit(ParticleSystem * __ptr64,ParticleSystemUpdateData & __ptr64,SubEmitterEmitCommand const & __ptr64) 0x00007ffb971aaf13
RecordEmit(ParticleSystemEmissionState & __ptr64,ParticleSystemUpdateData const & __ptr64,ParticleSystemParticles const & __ptr64,ParticleSystemSubEmitterType,int,unsigned __int64,float,float,float,float,float) 0x00007ffb97188517
KillParticle(ParticleSystemUpdateData & __ptr64,ParticleSystemParticles & __ptr64,unsigned __int64,unsigned __int64 & __ptr64) 0x00007ffb97185ec0
ParticleSystem::SimulateParticles(ParticleSystemUpdateData & __ptr64,ParticleSystemParticles & __ptr64,unsigned __int64,unsigned __int64 & __ptr64,math::_float1 const & __ptr64,unsigned __int64 * __ptr64) 0x00007ffb971b4e80
ParticleSystem::UpdateModulesIncremental(ParticleSystemUpdateData & __ptr64,ParticleSystemParticles & __ptr64,unsigned __int64,unsigned __int64,float,unsigned __int64 * __ptr64) 0x00007ffb971ba4f2
ParticleSystem::Update1Incremental(ParticleSystemUpdateData & __ptr64,ParticleSystemParticles & __ptr64,float) 0x00007ffb971b776f
ParticleSystem::Update1b(ParticleSystemUpdateData & __ptr64,int) 0x00007ffb971b7e5e
ParticleSystem::UpdateFunction(ParticleSystemUpdateData * __ptr64) 0x00007ffb971b99f8
0x00007ffb9654d4f8
0x00007ffb9654cb96
0x00007ffb9654eae4
Thread::RunThreadWrapper(void * __ptr64) 0x00007ffb969b5587
0x00007ffc86ca26bd
0x00007ffc877ca9f8
PS: Our temporary solution is – we’re disabling all particles on all scenes and enable them manually after the scene is loaded. Magically, that solves the crashes.
1 Like
Are you able to submit a bug report, with a reproduction project?
We’ve not seen any other reports of this (yet)
No, sorry. That happens on our very big project and stripping it down to a minimal reproduction project will be too much work.
Also, the bug still reproduces on 2022.2.5, but with less chance (or we need to reload a level more times to get the crash). But it is still there, so that’s not something new for ver .10
foolish_snail:
same bug
#0 0x0000000104907c74 in MemoryManager::ReallocateFallbackToAllocateDeallocate(void*, unsigned long, unsigned long, MemLabelId, AllocateOptions, char const*, int) ()
#1 0x0000000104907c70 in MemoryManager::ReallocateFallbackToAllocateDeallocate(void*, unsigned long, unsigned long, MemLabelId, AllocateOptions, char const*, int) ()
#2 0x0000000104a677fc in reallocate ()
#3 0x0000000104a677fc in dynamic_array_detail::dynamic_array_data::reserve(unsigned long, unsigned long, unsigned long) ()
#4 0x0000000104f07464 in reserve ()
#5 0x0000000104f07464 in ParticleSystemParticles::array_reserve(unsigned long) ()
#6 0x0000000104f048b4 in ReserveParticleMemory ()
#7 0x0000000104f048b4 in ParticleSystem::Play(bool) ()
#8 0x0000000104f0635c in ParticleSystem::AwakeFromLoad(AwakeFromLoadMode) ()
#9 0x0000000104b28d10 in AwakeFromLoadQueue::InvokeAwakeFromLoad(AwakeFromLoadQueue::Item*, unsigned int, AwakeFromLoadMode) ()
#10 0x0000000104b28bd8 in AwakeFromLoadQueue::AwakeFromLoadAllQueues(AwakeFromLoadMode, bool) ()
#11 0x0000000104932348 in AwakeFromLoad ()
#12 0x0000000104932348 in AwakeAndActivateClonedObjects(Object**, vector_map<int, int, std::__1::less<int>, stl_allocator<std::__1::pair<int, int>, (MemLabelIdentifier)1, 16> > const&) ()
#13 0x0000000104932f18 in InstantiateObject(Object&, Vector3f const&, Quaternionf const&) ()
#14 0x00000001048c0de4 in Object_CUSTOM_Internal_InstantiateSingle_Injected(ScriptingBackendNativeObjectPtrOpaque*, Vector3f const&, Quaternionf const&) ()
#15 0x0000000106ff0280 in
We are getting this one too. Unity 2022.3.15f1
I think it might be fixed for me after duplicating the particle system that was causing the issue. Then deleting the original. Potentially a corrupt game object? Looking more into it now.