Description

This is the third different callstack in an attempt to repro a HotReload crash I am experiencing.

The other two are:

  • [Link Removed]: Nullptr Ensure and crash after HotReloading
  • [Link Removed]: Assert in EditorEngine.cpp after HotReload
Steps to Reproduce

Repro:

  1. Sync QAGame to the same CL as the latest binary build.
  2. Open a copy of QAGame with the latest binary build
  3. In the Content Browser, find the C++ class QAHotReloadUPROP and created a C++ derived from it named CowCPP
  4. Right click on CowCPP and create a Blueprint class based on CowCPP and name it CowBP.
  5. Place an instance of CowBP into the level.
  6. Switch to Visual Studio and add the following code to CowCPP.h below the GENERATED_BODY() macro:
    public:
    UPROPERTY(Category = ThingsAndStuff, BlueprintReadWrite, EditAnywhere) float Stealthiness;
    	
    UPROPERTY(Category = ThingsAndStuff, BlueprintReadOnly) bool KingCow;
  7. Click the compile button in UE4Editor
  8. Open CowBP in the Blueprint subeditor and focus the Event Graph
  9. Right click in the event graph, search for the category "things", and place the following nodes in he event graph:
    1. "Get King Cow" node
    2. "Get Stealthiness" node
    3. "Set Stealthiness" node
  10. In CowCPP.h, change Stealthiness to Stealth, and set it equal to 3.0f.
    UPROPERTY(Category = ThingsAndStuff, BlueprintReadWrite, EditAnywhere) float Stealth = 3.0f;
  11. Click the Compile button in the editor.

Result:
UE4Editor crashes while trying to HotReload.

Expected:
Project is able to HotReload without crashing.

Frequency:
3/3

Callstack
LogClass: Could not find existing class CowCPP in package /Script/QAGame for HotReload, assuming new class
LogClass: ETestResult HotReload.
LogClass: ETestNativeEnum HotReload.
LogClass: EPolyphonyMode HotReload.
LogClass: EWaveform HotReload.
LogClass: TestNativeStruct HotReload.
LogClass: QASkeletalMeshMergeParams HotReload.
LogClass: QASkelMeshMergeUVTransformMapping HotReload.
LogClass: QASkelMeshMergeUVTransform HotReload.
LogClass: QASkelMeshMergeSectionMapping HotReload.
LogClass: TakeHitInfo HotReload.
LogHotReload: Re-instancing CowCPP after hot-reload.
LogCrashTracker: 


LogCrashTracker: 


LogWindows:Error: === Critical error: ===
LogWindows:Error: 
LogWindows:Error: Fatal error!
LogWindows:Error: 
LogWindows:Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x001a2df4
LogWindows:Error: 
LogWindows:Error: UE4Editor-UnrealEd.dll!TBaseMulticastDelegate<void,UBlueprint * __ptr64>::Broadcast() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:936]
LogWindows:Error: UE4Editor-UnrealEd.dll!FKismetEditorUtilities::CompileBlueprint() [d:\build\++ue4+release-4.15+compile\sync\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:766]
LogWindows:Error: UE4Editor-UnrealEd.dll!FBlueprintCompileReinstancer::CompileChildren() [d:\build\++ue4+release-4.15+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:629]
LogWindows:Error: UE4Editor-UnrealEd.dll!FBlueprintCompileReinstancer::ReinstanceObjects() [d:\build\++ue4+release-4.15+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:756]
LogWindows:Error: UE4Editor-HotReload.dll!FHotReloadModule::ReinstanceClass() [d:\build\++ue4+release-4.15+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:1260]
LogWindows:Error: UE4Editor-HotReload.dll!FHotReloadModule::ReinstanceClasses() [d:\build\++ue4+release-4.15+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:1247]
LogWindows:Error: UE4Editor-HotReload.dll!TBaseRawMethodDelegateInstance<0,FHotReloadModule,void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:648]
LogWindows:Error: UE4Editor-CoreUObject.dll!TBaseMulticastDelegate<void>::Broadcast() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:937]
LogWindows:Error: UE4Editor-CoreUObject.dll!UClassReplaceHotReloadClasses() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:720]
LogWindows:Error: UE4Editor-CoreUObject.dll!ProcessNewlyLoadedUObjects() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:858]
LogWindows:Error: UE4Editor-CoreUObject.dll!TBaseStaticDelegateInstance<void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:1027]
LogWindows:Error: UE4Editor-Core.dll!TBaseMulticastDelegate<void>::Broadcast() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:937]
LogWindows:Error: UE4Editor-Core.dll!FModuleManager::LoadModuleWithFailureReason() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\modules\modulemanager.cpp:471]
LogWindows:Error: UE4Editor-Core.dll!FModuleManager::LoadModule() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\modules\modulemanager.cpp:330]
LogWindows:Error: UE4Editor-HotReload.dll!FHotReloadModule::DoHotReloadInternal() [d:\build\++ue4+release-4.15+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:856]
LogWindows:Error: UE4Editor-HotReload.dll!UE4Function_Private::TFunctionRefCaller<<lambda_845f9b2944b03bbc30be1e1f4a8d7f4b>,void __cdecl(TMap<FString,FString,FDefaultSetAllocator,TDefaultMapKeyFuncs<FString,FString,0> > const & __ptr64,bool,enum ECompilationResult::Type)>::Call() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\templates\function.h:245]
LogWindows:Error: UE4Editor-HotReload.dll!FHotReloadModule::CheckForFinishedModuleDLLCompile() [d:\build\++ue4+release-4.15+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:1905]
LogWindows:Error: UE4Editor-HotReload.dll!FHotReloadModule::Tick() [d:\build\++ue4+release-4.15+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:594]
LogWindows:Error: UE4Editor-UnrealEd.dll!UEditorEngine::Tick() [d:\build\++ue4+release-4.15+compile\sync\engine\source\editor\unrealed\private\editorengine.cpp:1236]
LogWindows:Error: UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick() [d:\build\++ue4+release-4.15+compile\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:391]
LogWindows:Error: UE4Editor.exe!FEngineLoop::Tick() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3025]
LogWindows:Error: UE4Editor.exe!GuardedMain() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
LogWindows:Error: UE4Editor.exe!GuardedMainWrapper() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
LogWindows:Error: UE4Editor.exe!WinMain() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
LogWindows:Error: UE4Editor.exe!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
LogWindows:Error: KERNEL32.DLL!0x00000000297A8364
LogWindows:Error: ntdll.dll!0x000000002C1870D1
LogWindows:Error: ntdll.dll!0x000000002C1870D1
LogWindows:Error: 
LogExit: Executing StaticShutdownAfterError
LogWindows: FPlatformMisc::RequestExit(1)

Have Comments or More Details?

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

0
Login to Vote

Cannot Reproduce
ComponentUE - Foundation - Core
Affects Versions4.15
CreatedJan 27, 2017
ResolvedJan 30, 2017
UpdatedJul 14, 2021