Description

If Nanite data becomes corrupt in the DDC, the Editor may crash in FStreamingManager::InstallReadyPages() when the Pending.State is FPendingPage::EState::DDC_Ready but the resulting SrcPtr is null because Nanite failed to decode the corrupted data.

Steps to Reproduce

n/a

Callstack

UnrealEditor-Engine.dll!Nanite::ValidateFixupChunk(const Nanite::FFixupChunk & FixupChunk) Line 1277
UnrealEditor-Engine.dll!Nanite::FStreamingManager::InstallReadyPages(unsigned int NumReadyPages) Line 1565
UnrealEditor-Engine.dll!Nanite::FStreamingManager::AsyncUpdate() Line 2580
[Inline Frame] UnrealEditor-Engine.dll!Nanite::FStreamingUpdateTask::DoTask(ENamedThreads::Type) Line 1856
UnrealEditor-Engine.dll!TGraphTask<Nanite::FStreamingUpdateTask>::ExecuteTask(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> & NewTasks, ENamedThreads::Type CurrentThread, bool bDeleteOnCompletion) Line 1235
[Inline Frame] UnrealEditor-Core.dll!FBaseGraphTask::Execute(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> &) Line 840
[Inline Frame] UnrealEditor-Core.dll!FTaskGraphCompatibilityImplementation::QueueTask::__l5::<lambda>() Line 1970
UnrealEditor-Core.dll!LowLevelTasks::FTask::Init::__l13::<lambda>(const bool bNotCanceled) Line 499
[Inline Frame] UnrealEditor-Core.dll!Invoke(LowLevelTasks::FTask::Init::__l13::void <lambda>(void) &) Line 47
[Inline Frame] UnrealEditor-Core.dll!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<`LowLevelTasks::FTask::Init<`FTaskGraphCompatibilityImplementation::QueueTask'::`5'::void <lambda>(void)>'::`13'::void <lambda>(void),0>::Call(void *) Line 162
UnrealEditor-Core.dll!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<`LowLevelTasks::FTask::Init<`FTaskGraphCompatibilityImplementation::QueueTask'::`5'::void <lambda>(void)>'::`13'::void <lambda>(void),0>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48> & Destination, void * InlineData, unsigned int DestInlineSize, bool <Params_0>) Line 171
[Inline Frame] UnrealEditor-Core.dll!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48> &) Line 308
UnrealEditor-Core.dll!LowLevelTasks::FTask::ExecuteTask() Line 627
UnrealEditor-Core.dll!LowLevelTasks::FScheduler::ExecuteTask(LowLevelTasks::FTask * InTask) Line 155
[Inline Frame] UnrealEditor-Core.dll!LowLevelTasks::FScheduler::TryExecuteTaskFrom(LowLevelTasks::Private::FWaitEvent *) Line 362
UnrealEditor-Core.dll!LowLevelTasks::FScheduler::WorkerMain(LowLevelTasks::Private::FWaitEvent * WorkerEvent, LowLevelTasks::Private::TLocalQueueRegistry<1024>::TLocalQueue * WorkerLocalQueue, unsigned int WaitCycles, bool bPermitBackgroundWork) Line 397
[Inline Frame] UnrealEditor-Core.dll!LowLevelTasks::FScheduler::CreateWorker::__l2::<lambda>() Line 70
[Inline Frame] UnrealEditor-Core.dll!Invoke(LowLevelTasks::FScheduler::CreateWorker::__l2::void <lambda>(void) &) Line 47
UnrealEditor-Core.dll!UE::Core::Private::Function::TFunctionRefCaller<`LowLevelTasks::FScheduler::CreateWorker'::`2'::void <lambda>(void),void __cdecl(void)>::Call(void * Obj) Line 406
[Inline Frame] UnrealEditor-Core.dll!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(void)>::operator()() Line 555
UnrealEditor-Core.dll!FThreadImpl::Run() Line 69
UnrealEditor-Core.dll!FRunnableThreadWin::Run() Line 149
UnrealEditor-Core.dll!FRunnableThreadWin::GuardedRun() Line 79
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Graphics Features - Nanite
Affects Versions5.45.4.4
Target Fix5.6
CreatedSep 11, 2024
UpdatedSep 18, 2024
View Jira Issue