Performing a Hot Reload after creating a custom UClass class can result in a crash.
This was reported on Linux, but reproduced on Windows. Additional testing will be done on Linux to confirm the issue there as well.
RESULT:
The Editor crashes due an assertion: Assertion failed: ClassAddReferencedObjects != 0
EXPECTED:
The Hot Reload completes successfully and the Editor does not crash.
Assertion failed: ClassAddReferencedObjects != 0 [Link Removed] [Line: 2193]
UE4Editor_Core!FWindowsErrorOutputDevice::Serialize() [d:\main-builds\stream\engine\source\runtime\core\private\windows\windowserroroutputdevice.cpp:79]
UE4Editor_Core!FOutputDevice::LogfImpl() [d:\main-builds\stream\engine\source\runtime\core\private\misc\outputdevice.cpp:71]
UE4Editor_Core!FDebug::AssertFailed() [d:\main-builds\stream\engine\source\runtime\core\private\misc\assertionmacros.cpp:446]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [d:\main-builds\stream\engine\source\runtime\core\private\misc\assertionmacros.cpp:424]
UE4Editor_CoreUObject!UClass::AssembleReferenceTokenStream() [d:\main-builds\stream\engine\source\runtime\coreuobject\private\uobject\garbagecollection.cpp:2193]
UE4Editor_CoreUObject!UClass::AssembleReferenceTokenStreams() [d:\main-builds\stream\engine\source\runtime\coreuobject\private\uobject\class.cpp:4373]
UE4Editor_HotReload!FHotReloadModule::ReinstanceClasses() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:1228]
UE4Editor_HotReload!TBaseRawMethodDelegateInstance<0,FHotReloadModule,void __cdecl(void)>::ExecuteIfSafe() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:518]
UE4Editor_CoreUObject!TBaseMulticastDelegate<void>::Broadcast() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:977]
UE4Editor_CoreUObject!UClassReplaceHotReloadClasses() [d:\main-builds\stream\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:860]
UE4Editor_CoreUObject!ProcessNewlyLoadedUObjects() [d:\main-builds\stream\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:1017]
UE4Editor_CoreUObject!TBaseStaticDelegateInstance<void __cdecl(FName,bool)>::ExecuteIfSafe() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:813]
UE4Editor_Core!TBaseMulticastDelegate<void,FName,bool>::Broadcast() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:977]
UE4Editor_Core!FModuleManager::LoadModuleWithFailureReason() [d:\main-builds\stream\engine\source\runtime\core\private\modules\modulemanager.cpp:529]
UE4Editor_Core!FModuleManager::LoadModule() [d:\main-builds\stream\engine\source\runtime\core\private\modules\modulemanager.cpp:367]
UE4Editor_HotReload!FHotReloadModule::DoHotReloadInternal() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:789]
UE4Editor_HotReload!UE4Function_Private::TFunctionRefCaller<<lambda_9c48366a887b61ded2fa445a677e9fc1>,void __cdecl(TMap<FName,FString,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FName,FString,0> > const &,bool,enum ECompilationResult::Type)>::Call() [d:\main-builds\stream\engine\source\runtime\core\public\templates\function.h:487]
UE4Editor_HotReload!FHotReloadModule::CheckForFinishedModuleDLLCompile() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:1853]
UE4Editor_HotReload!FHotReloadModule::Tick() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:1421]
UE4Editor_Core!FTicker::Tick() [d:\main-builds\stream\engine\source\runtime\core\private\containers\ticker.cpp:95]
UE4Editor!FEngineLoop::Tick() [d:\main-builds\stream\engine\source\runtime\launch\private\launchengineloop.cpp:4277]
UE4Editor!GuardedMain() [d:\main-builds\stream\engine\source\runtime\launch\private\launch.cpp:173]
UE4Editor!GuardedMainWrapper() [d:\main-builds\stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
UE4Editor!WinMain() [d:\main-builds\stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:275]
UE4Editor!__scrt_common_main_seh() [d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-71566 in the post.
3 |
Component | UE - Foundation - Cpp Tools - Hot Reload |
---|---|
Affects Versions | 4.22, 4.23 |
Target Fix | 4.22 |
Created | Mar 14, 2019 |
---|---|
Resolved | Mar 15, 2019 |
Updated | Apr 4, 2019 |