Description

When compiling a PSO, RHI Breadcrumbs can be fed a bad FRHIBreadcrumbNode, resulting in reading random memory and crashing during the recursive node iteration. This only happens when tracing.

The issue does not reproduce with -onethread.

Steps to Reproduce

1. Download the Licensee's test project and open (see addl info URL)
2. Build, Cook, and Package the project
3. Run the packaged game with the command-line argument "-trace -clearpsodrivercache"
4. Once the game is open, wait for a few seconds to a few minutes
5. Observe the crash

Callstack

CrashTraceBundledPSO.exe!`FRHIBreadcrumbNode::WalkIn'::`5'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &, FOutputDevice &)<`FRHIBreadcrumbNode::WalkIn'::`5'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &, FOutputDevice &)>(FRHIBreadcrumbNode * Current, FRHIBreadcrumbNode::WalkIn::__l5::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &, FOutputDevice &) & Recurse) Line 611 C++
[Inline Frame] CrashTraceBundledPSO.exe!FRHIBreadcrumbNode::WalkIn::__l5::<lambda>(FRHIBreadcrumbNode *) Line 611 C++
[Inline Frame] CrashTraceBundledPSO.exe!FRHIBreadcrumbNode::WalkIn(FRHIBreadcrumbNode * Node) Line 614 C++
> CrashTraceBundledPSO.exe!FCompilePipelineStateTask::CompilePSO(const FGraphicsPipelineStateInitializer::EPSOPrecacheCompileType * OptionalPriorityOverride) Line 2907 C++
CrashTraceBundledPSO.exe!InternalCreateGraphicsPipelineState::__l17::<lambda>(const FPSOPrecacheAsyncTask * ThisTask) Line 3705 C++
[Inline Frame] CrashTraceBundledPSO.exe!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(FPSOPrecacheAsyncTask const *)>::operator()(const FPSOPrecacheAsyncTask * <Params_0>) Line 470 C++
CrashTraceBundledPSO.exe!FPSOPrecacheAsyncTask::DoTaskWork() Line 638 C++
CrashTraceBundledPSO.exe!FAsyncTaskBase::DoWork() Line 289 C++
CrashTraceBundledPSO.exe!FAsyncTaskBase::DoThreadedWork() Line 313 C++
CrashTraceBundledPSO.exe!FQueuedThread::Run() Line 1447 C++
CrashTraceBundledPSO.exe!FRunnableThreadWin::Run() Line 159 C++
CrashTraceBundledPSO.exe!FRunnableThreadWin::GuardedRun() Line 71 C++
[External Code]

Have Comments or More Details?

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

2
Login to Vote

Backlogged
ComponentUE - Rendering Architecture - RHI
Affects Versions5.5
Target Fix5.6
CreatedFeb 17, 2025
UpdatedFeb 19, 2025
View Jira Issue