Alex,
Here is another example call stack:
TMallocBinnedCommon::QuantizeSizeCommon(unsigned long long, unsigned int, const FMallocBinned2 &) MallocBinnedCommon.h:869
[Inlined] DefaultCalculateSlackReserve(int, unsigned long long, bool, unsigned int) ContainerAllocationPolicies.h:229
[Inlined] TSizedHeapAllocator::ForAnyElementType::CalculateSlackReserve(int, unsigned long long, unsigned int) ContainerAllocationPolicies.h:756
UE::Core::Private::ReallocTo<…>(unsigned int, unsigned int, int, TSizedHeapAllocator<…>::ForAnyElementType &, int, int &) Array.h:589
[Inlined] TArray::Shrink() Array.h:1283
`FPrimitiveSceneInfo::AddStaticMeshes'::`3'::<lambda_1>::operator()(int) PrimitiveSceneInfo.cpp:1552
[Inlined] ParallelForImpl::CallBody(const <lambda_1> &, const TArrayView<…> &, int, int) ParallelFor.h:81
`ParallelForImpl::ParallelForInternal<`FPrimitiveSceneInfo::AddStaticMeshes'::`3'::<lambda_1>,`ParallelForTemplate<`FPrimitiveSceneInfo::AddStaticMeshes'::`3'::<lambda_1> >'::`2'::<lambda_1>,std::nullptr_t>'::`2'::FParallelExecutor::operator()(const bool) ParallelFor.h:360
[Inlined] LowLevelTasks::FTask::Init::__l13::<lambda_1>::operator()(const bool) Task.h:499
[Inlined] Invoke(LowLevelTasks::FTask::<lambda_1> &, bool &) Invoke.h:47
[Inlined] LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<`LowLevelTasks::FTask::Init<`ParallelForImpl::ParallelForInternal<`FPrimitiveSceneInfo::AddStaticMeshes'::`3'::<lambda_1>,`ParallelForTemplate<`FPrimitiveSceneInfo::AddStaticMeshes'::`3'::<lambda_1> >'::`2'::<lambda_1>,std::nullptr_t>'::`2'::FParallelExecutor>'::`13'::<lambda_1>,0>::Call(void *,bool) TaskDelegate.h:162
LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<`LowLevelTasks::FTask::Init<`ParallelForImpl::ParallelForInternal<`FPrimitiveSceneInfo::AddStaticMeshes'::`3'::<lambda_1>,`ParallelForTemplate<`FPrimitiveSceneInfo::AddStaticMeshes'::`3'::<lambda_1> >'::`2'::<lambda_1>,std::nullptr_t>'::`2'::FParallelExecutor>'::`13'::<lambda_1>,0>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48> &,void *,unsigned int,bool) TaskDelegate.h:171
[Inlined] LowLevelTasks::TTaskDelegate::CallAndMove(LowLevelTasks::TTaskDelegate<…> &, bool) TaskDelegate.h:309
LowLevelTasks::FTask::ExecuteTask() Task.h:627
[Inlined] FCpuProfilerTrace::FEventScope::{ctor}(unsigned int &,const char *,bool,const char *,unsigned int) CpuProfilerTrace.h:197
LowLevelTasks::FScheduler::ExecuteTask(LowLevelTasks::FTask *) Scheduler.cpp:396
[Inlined] LowLevelTasks::FScheduler::TryExecuteTaskFrom(LowLevelTasks::Private::FWaitEvent *, LowLevelTasks::Private::TLocalQueueRegistry<…>::TLocalQueue *, LowLevelTasks::Private::FOutOfWork &, bool) Scheduler.cpp:698
LowLevelTasks::FScheduler::WorkerLoop(LowLevelTasks::Private::FWaitEvent *, LowLevelTasks::Private::TLocalQueueRegistry<…>::TLocalQueue *, unsigned int, bool) Scheduler.cpp:757
[Inlined] LowLevelTasks::FScheduler::WorkerMain(LowLevelTasks::Private::FWaitEvent *, LowLevelTasks::Private::TLocalQueueRegistry<…>::TLocalQueue *, unsigned int, bool) Scheduler.cpp:816
`LowLevelTasks::FScheduler::CreateWorker'::`2'::<lambda_1>::operator()() Scheduler.cpp:220
[Inlined] UE::Core::Private::Function::TFunctionRefBase::operator()() Function.h:414
FThreadImpl::Run() Thread.cpp:66
FRunnableThreadWin::Run() WindowsRunnableThread.cpp:156
FRunnableThreadWin::GuardedRun() WindowsRunnableThread.cpp:79
I have tried running with double the Double Free Finder malloc and Stomp Malloc, and neither have crashed on / reported anything obvious.
This happens to both Nanite and non-Nanite meshes.
Would there be an easy way to tell in the debugger if the mesh in question was an HLOD?
[Attachment Removed]