We’re seeing this exact situation on 5.7.4. Running with runtime PCG hitting a deadlock and we have several threads stuck inside FPCGLandscapeCacheEntry::TouchAndLoad with the callstack like:
[Inline Frame] BWGame-Win64-Test.exe!Windows::EnterCriticalSection(Windows::CRITICAL_SECTION *) Line 238 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-Test.exe!UE::FWindowsRecursiveMutex::Lock() Line 43 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-Test.exe!UE::TScopeLockUE::FWindowsRecursiveMutex::{ctor}(UE::FWindowsRecursiveMutex &) Line 28 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-Test.exe!FScopeLock::{ctor}(UE::FWindowsRecursiveMutex *) Line 148 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-Test.exe!FPCGLandscapeCacheEntry::TouchAndLoad(int) Line 331 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-Test.exe!UPCGLandscapeCache::GetCacheEntryInternal(AActor *) Line 959 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-Test.exe!UPCGLandscapeCache::GetCacheEntryInternal(const ULandscapeInfo *) Line 860 C++ Symbols loaded.
BWGame-Win64-Test.exe!UPCGLandscapeCache::GetCacheEntry(const ULandscapeInfo * InLandscapeInfo, const UE::Math::TIntPoint & InComponentKey, ALandscapeProxy * InLandscapeProxy, bool bInAllowLoadOrCreate) Line 846 C++ Symbols loaded.
BWGame-Win64-Test.exe!UPCGLandscapeCache::SampleMetadataOnPoint(ALandscapeProxy * Landscape, const UE::Math::TTransform & InTransform, __int64 & OutMetadataEntry, UPCGMetadata * OutMetadata) Line 1000 C++ Symbols loaded.
BWGame-Win64-Test.exe!PCGWorldQueryHelpers::ApplyRayHitMetadata(const FHitResult & HitResult, const FPCGWorldRaycastQueryParams & QueryParams, const UE::Math::TVector & RayDirection, const UE::Math::TTransform & InTransform, __int64 & OutMetadataEntry, UPCGMetadata * OutMetadata, TWeakObjectPtr<UWorld,FWeakObjectPtr> World) Line 337 C++ Symbols loaded.
BWGame-Win64-Test.exe!UPCGWorldRayHitData::SamplePoint(const UE::Math::TTransform & InTransform, const UE::Math::TBox & InBounds, FPCGPoint & OutPoint, UPCGMetadata * OutMetadata) Line 322 C++ Symbols loaded.
BWGame-Win64-Test.exe!UPCGSpatialData::ProjectPoint(const UE::Math::TTransform & InTransform, const UE::Math::TBox & InBounds, const FPCGProjectionParams & InParams, FPCGPoint & OutPoint, UPCGMetadata * OutMetadata) Line 280 C++ Symbols loaded.
BWGame-Win64-Test.exe!PCGSurfaceSampler::SampleSurface::__l2::<lambda_2>::operator()(int StartReadIndex, int StartWriteIndex, int Count) Line 312 C++ Symbols loaded.
and several others made it past this lock and are blocked in OpenReadBulkData
BWGame-Win64-DebugGame.exe!FEventWin::Wait(unsigned int WaitTime, const bool bIgnoreThreadIdleStats) Line 1929 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-DebugGame.exe!FEvent::Wait() Line 76 C++ Symbols loaded.
BWGame-Win64-DebugGame.exe!UE::BulkData::Private::OpenReadBulkData(const UE::BulkData::Private::FBulkMetaData & BulkMeta, const FIoChunkId & BulkChunkId, __int64 Offset, __int64 Size, EAsyncIOPriorityAndFlags Priority, TFunction<void __cdecl(FArchive &)> && Read) Line 386 C++ Symbols loaded.
BWGame-Win64-DebugGame.exe!FBulkData::TryLoadDataIntoMemory(FIoBuffer Dest) Line 1676 C++ Symbols loaded.
BWGame-Win64-DebugGame.exe!FBulkData::GetCopy(void * * Dest, bool bDiscardInternalCopy) Line 940 C++ Symbols loaded.
BWGame-Win64-DebugGame.exe!FPCGLandscapeCacheEntry::SerializeFromBulkData() Line 423 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-DebugGame.exe!FPCGLandscapeCacheEntry::TouchAndLoad(int) Line 334 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-DebugGame.exe!UPCGLandscapeCache::GetCacheEntryInternal(AActor *) Line 959 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-DebugGame.exe!UPCGLandscapeCache::GetCacheEntryInternal(const ULandscapeInfo *) Line 860 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-DebugGame.exe!UPCGLandscapeCache::GetCacheEntry(const ULandscapeInfo *) Line 846 C++ Symbols loaded.
BWGame-Win64-DebugGame.exe!UPCGLandscapeCache::SampleMetadataOnPoint(ALandscapeProxy * Landscape, const UE::Math::TTransform & InTransform, __int64 & OutMetadataEntry, UPCGMetadata * OutMetadata) Line 998 C++ Symbols loaded.
BWGame-Win64-DebugGame.exe!PCGWorldQueryHelpers::ApplyRayHitMetadata(const FHitResult & HitResult, const FPCGWorldRaycastQueryParams & QueryParams, const UE::Math::TVector & RayDirection, const UE::Math::TTransform & InTransform, __int64 & OutMetadataEntry, UPCGMetadata * OutMetadata, TWeakObjectPtr<UWorld,FWeakObjectPtr> World) Line 337 C++ Symbols loaded.
BWGame-Win64-DebugGame.exe!UPCGWorldRayHitData::SamplePoint(const UE::Math::TTransform & InTransform, const UE::Math::TBox & InBounds, FPCGPoint & OutPoint, UPCGMetadata * OutMetadata) Line 322 C++ Symbols loaded.
BWGame-Win64-DebugGame.exe!UPCGSpatialData::ProjectPoint(const UE::Math::TTransform & InTransform, const UE::Math::TBox & InBounds, const FPCGProjectionParams & InParams, FPCGPoint & OutPoint, UPCGMetadata * OutMetadata) Line 280 C++ Symbols loaded.
BWGame-Win64-DebugGame.exe!PCGSurfaceSampler::SampleSurface::__l2::<lambda_2>::operator()(int StartReadIndex, int StartWriteIndex, int Count) Line 312 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-DebugGame.exe!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::FFunctionRefStoragePolicy,int __cdecl(int,int,int)>::operator()(int <Params_0>, int <Params_1>, int <Params_2>) Line 414 C++ Symbols loaded.
[Inline Frame] BWGame-Win64-DebugGame.exe!FPCGAsync::Private::AsyncProcessing::__l53::(const int) Line 585 C++ Symbols loaded.
BWGame-Win64-DebugGame.exe!FPCGAsync::Private::AsyncProcessing::__l55::<lambda_4>::operator()() Line 610 C++ Symbols loaded.