Hi everyone,
Please, allow me to pic your brains about a crash I’m experiencing when cooking our game.
It’s not a 100% repro bug, but it seems to happen on machines that run low on memory, causing the GC to do is job, and then, we have this beauty:
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0xffffffffffffffff
[Callstack] 0x00007ffb1b3a5a2a UnrealEditor-CoreUObject.dll!UStruct::IsChildOf() [D:\BuildAgent\work\w\Engine\Source\Runtime\CoreUObject\Private\UObject\Class.cpp:2767]
[Callstack] 0x00007ffb1b5e483e UnrealEditor-CoreUObject.dll!FObjectPtr::IsA() [D:\BuildAgent\work\w\Engine\Source\Runtime\CoreUObject\Private\UObject\ObjectPtr.cpp:104]
[Callstack] 0x00007ffb1b6db94b UnrealEditor-CoreUObject.dll!FDelegateProperty::Serialize() [D:\BuildAgent\work\w\Engine\Source\Runtime\CoreUObject\Private\UObject\PropertyDelegate.cpp:187]
[Callstack] 0x00007ffb1b3c0f41 UnrealEditor-CoreUObject.dll!UStruct::SerializeProperties() [D:\BuildAgent\work\w\Engine\Source\Runtime\CoreUObject\Private\UObject\Class.cpp:2281]
[Callstack] 0x00007ffb1b3b81e1 UnrealEditor-CoreUObject.dll!UStruct::Serialize() [D:\BuildAgent\work\w\Engine\Source\Runtime\CoreUObject\Private\UObject\Class.cpp:2376]
[Callstack] 0x00007ffb1b3b7a1d UnrealEditor-CoreUObject.dll!UFunction::Serialize() [D:\BuildAgent\work\w\Engine\Source\Runtime\CoreUObject\Private\UObject\Class.cpp:7473]
[Callstack] 0x00007ffb07239c8e UnrealEditor-UnrealEd.dll!UE::Cook::ConstructObjectGraph() [D:\BuildAgent\work\w\Engine\Source\Editor\UnrealEd\Private\Cooker\CookProfiling.cpp:506]
[Callstack] 0x00007ffb0723a8f9 UnrealEditor-UnrealEd.dll!UE::Cook::ConstructObjectGraphProfileData() [D:\BuildAgent\work\w\Engine\Source\Editor\UnrealEd\Private\Cooker\CookProfiling.cpp:587]
[Callstack] 0x00007ffb0723f4c7 UnrealEditor-UnrealEd.dll!UE::Cook::DumpObjClassList() [D:\BuildAgent\work\w\Engine\Source\Editor\UnrealEd\Private\Cooker\CookProfiling.cpp:689]
[Callstack] 0x00007ffb071c7ad1 UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::EvaluateGarbageCollectionResults() [D:\BuildAgent\work\w\Engine\Source\Editor\UnrealEd\Private\Cooker\CookGarbageCollect.cpp:1160]
[Callstack] 0x00007ffb06f9f82c UnrealEditor-UnrealEd.dll!UCookCommandlet::ConditionalCollectGarbage() [D:\BuildAgent\work\w\Engine\Source\Editor\UnrealEd\Private\Commandlets\CookCommandlet.cpp:779]
[Callstack] 0x00007ffb06fa17c5 UnrealEditor-UnrealEd.dll!UCookCommandlet::CookAsCookWorker() [D:\BuildAgent\work\w\Engine\Source\Editor\UnrealEd\Private\Commandlets\CookCommandlet.cpp:642]
[Callstack] 0x00007ffb06fbfea8 UnrealEditor-UnrealEd.dll!UCookCommandlet::Main() [D:\BuildAgent\work\w\Engine\Source\Editor\UnrealEd\Private\Commandlets\CookCommandlet.cpp:263]
[Callstack] 0x00007ff740228fa0 UnrealEditor-Cmd.exe!FEngineLoop::PreInitPostStartupScreen() [D:\BuildAgent\work\w\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:3860]
[Callstack] 0x00007ff74021e39c UnrealEditor-Cmd.exe!GuardedMain() [D:\BuildAgent\work\w\Engine\Source\Runtime\Launch\Private\Launch.cpp:143]
[Callstack] 0x00007ff74021e6ba UnrealEditor-Cmd.exe!GuardedMainWrapper() [D:\BuildAgent\work\w\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:128]
[Callstack] 0x00007ff74022209e UnrealEditor-Cmd.exe!LaunchWindowsStartup() [D:\BuildAgent\work\w\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:282]
[Callstack] 0x00007ff740234e44 UnrealEditor-Cmd.exe!WinMain() [D:\BuildAgent\work\w\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:339]
[Callstack] 0x00007ff740237466 UnrealEditor-Cmd.exe!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
It happens after this line:
LogCook: Display: See log for memory use information for UObject classes and LLM tags.
From the look of it, it seems that we may have some UObjects that have been cleaned by the GC but some dangling references are still there and tried to be accessed, to be listed, and we trip on it. However, I can’t find a way to determine what these objects are or what is referencing them.
If someone had a similar issue and wants to share about it, feel free.
Thanks for your help.