MarkCompilationCompleteでのクラッシュする

お世話になっております。

<br/>

下記のエンジン内部の箇所でクラッシュしてしまい。

Dumpでも情報が追えないので相談です。

PSOPrecacheMaterial.cppにある下記の関数

MarkCompilationComplete

verify(!CheckCompilingPSOs(*FindResult, false /*bBoostPriority*/));でクラッシュしてしまいました。

<br/>

なにか対処方法など無いでしょうか?

よろしくお願いいたします。

<br/>

`[外部コード]
TestGame-Win64-Test.exe!ReportAssert(const wchar_t * ErrorMessage, void * ProgramCounter) 行 1828 C++
TestGame-Win64-Test.exe!FWindowsErrorOutputDevice::Serialize(const wchar_t * Msg, ELogVerbosity::Type Verbosity, const FName & Category) 行 84 C++
TestGame-Win64-Test.exe!FOutputDevice::LogfImpl(const wchar_t * Fmt, …) 行 70 C++
[インライン フレーム] TestGame-Win64-Test.exe!FOutputDevice::Logf(const wchar_t[49] &) 行 249 C++
TestGame-Win64-Test.exe!AssertFailedImplV(const char * Expr, const char * File, int Line, void * ProgramCounter, const wchar_t * Format, char * Args) 行 150 C++
TestGame-Win64-Test.exe!FDebug::CheckVerifyFailedImpl2(const char * Expr, const char * File, int Line, const wchar_t * Format, …) 行 649 C++
[インライン フレーム] TestGame-Win64-Test.exe!FMaterialPSORequestManager::MarkCompilationComplete(const FMaterialPSOPrecacheParams & Params, unsigned int RequestLifecycleID) 行 475 C++

TestGame-Win64-Test.exe!FMaterialPSORequestManager::PrecachePSOs::__l27::() 行 234 C++
[インライン フレーム] TestGame-Win64-Test.exe!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(void)>::operator()() 行 555 C++
[インライン フレーム] TestGame-Win64-Test.exe!TFunctionGraphTaskImpl<void __cdecl(void),0>::DoTaskImpl(TUniqueFunction<void __cdecl(void)> &) 行 1733 C++
[インライン フレーム] TestGame-Win64-Test.exe!TFunctionGraphTaskImpl<void __cdecl(void),0>::DoTask(ENamedThreads::Type) 行 1726 C++
TestGame-Win64-Test.exe!TGraphTask<TFunctionGraphTaskImpl<void __cdecl(void),0>>::ExecuteTask(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> & NewTasks, ENamedThreads::Type CurrentThread, bool bDeleteOnCompletion) 行 1236 C++
[インライン フレーム] TestGame-Win64-Test.exe!FBaseGraphTask::Execute(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> &) 行 840 C++
[インライン フレーム] TestGame-Win64-Test.exe!FTaskGraphCompatibilityImplementation::QueueTask::__l5::() 行 1970 C++
TestGame-Win64-Test.exe!LowLevelTasks::FTask::Init::__l13::(const bool bNotCanceled) 行 499 C++
[インライン フレーム] TestGame-Win64-Test.exe!Invoke(LowLevelTasks::FTask::Init::__l13::void (void) &) 行 47 C++
[インライン フレーム] TestGame-Win64-Test.exe!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<FTaskGraphCompatibilityImplementation::QueueTask’::5'::void <lambda>(void)>'::13’::void (void),0>::Call(void *) 行 162 C++
TestGame-Win64-Test.exe!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<FTaskGraphCompatibilityImplementation::QueueTask’::5'::void <lambda>(void)>'::13’::void (void),0>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48> & Destination, void * InlineData, unsigned int DestInlineSize, bool <Params_0>) 行 171 C++
[インライン フレーム] TestGame-Win64-Test.exe!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48> &) 行 308 C++
TestGame-Win64-Test.exe!LowLevelTasks::FTask::ExecuteTask() 行 627 C++
[インライン フレーム] TestGame-Win64-Test.exe!FCpuProfilerTrace::FEventScope::{ctor}(unsigned int &) 行 133 C++
TestGame-Win64-Test.exe!LowLevelTasks::FScheduler::ExecuteTask(LowLevelTasks::FTask * InTask) 行 154 C++
[インライン フレーム] TestGame-Win64-Test.exe!LowLevelTasks::FScheduler::TryExecuteTaskFrom(LowLevelTasks::Private::FWaitEvent *) 行 362 C++
TestGame-Win64-Test.exe!LowLevelTasks::FScheduler::WorkerMain(LowLevelTasks::Private::FWaitEvent * WorkerEvent, LowLevelTasks::Private::TLocalQueueRegistry<1024>::TLocalQueue * WorkerLocalQueue, unsigned int WaitCycles, bool bPermitBackgroundWork) 行 397 C++
[インライン フレーム] TestGame-Win64-Test.exe!LowLevelTasks::FScheduler::CreateWorker::__l2::() 行 70 C++
[インライン フレーム] TestGame-Win64-Test.exe!Invoke(LowLevelTasks::FScheduler::CreateWorker::__l2::void (void) &) 行 47 C++
TestGame-Win64-Test.exe!UE::Core::Private::Function::TFunctionRefCaller<LowLevelTasks::FScheduler::CreateWorker'::2’::void (void),void __cdecl(void)>::Call(void * Obj) 行 406 C++
[インライン フレーム] TestGame-Win64-Test.exe!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(void)>::operator()() 行 555 C++
TestGame-Win64-Test.exe!FThreadImpl::Run() 行 69 C++
TestGame-Win64-Test.exe!FRunnableThreadWin::Run() 行 149 C++
TestGame-Win64-Test.exe!FRunnableThreadWin::GuardedRun() 行 79 C++
[フレームが見つかりません。kernel32.dll のためのバイナリが読み込まれません]
[外部コード]`上記のようにスタックトレースが出ていますが、どのクラスから繋がってるのかわからずでした。

ご不便をお掛けしており申し訳ございません。これはUE5.5においても発生する以下の問題と思われます。

この問題は以下のスレッドで当初報告されました。

[Content removed]

今のところ明示的な解決策は見つかっていませんが、原因を追跡するログを追加したチェンジリストが CL#42765782 にあります。これを追加してもまだクラッシュするケースがあるようですが、このCLでcheckをコメントアウトするとクラッシュ自体は回避できます。現在UE5.6ではこの問題は起きていない状況ですが、もしUE5.5で修正が必要な場合はこちらのCLがご利用いただけます。ステータスとしては現在もまだ調査中の状況なため、もし再現が可能な条件やプロジェクトなどがご共有可能であればお知らせ頂けますと幸いです。

ありがとうございます!

5.6にあげられるかの確認と、駄目だったらcheckのコメントアウトで一旦対応してみようと思います。