Description

Crash seems inconsistent, doesn't seem to happen every time. You may have to change the variables and re-compile through the editor a few times to get it to trigger.

The crash did occur for me when editing a single cpp file, however it crashes more consistently when editing multiple cpp files and compiling.

Crash seems to occur regardless of whether the cpp files are saved in VS or not.

Steps to Reproduce
  1. Create and open a CPP FPS project
  2. Open <project>Projectile.cpp and <project>Character.cpp
  3. Change a few of the variables in each .cpp file
    • For example change InitialLifeSpan to 10f and BaseTurnRate to 100f
  4. Navigate back over to the editor
  5. Click on the compile button

Result: Editor crashes

Expected: Compile completes successfully

Callstack
ntdll!7ff9506b0000  + 9c034
KERNELBASE!7ff94e020000  + 1a34e
UE4Editor-Core!ReportCrash(_EXCEPTION_POINTERS *) [WindowsPlatformCrashContext.cpp:1574]
UE4Editor!7ff7bdaa0000  + 3b0ff
VCRUNTIME140!7ff942e90000  + e3e0
ntdll!7ff9506b0000  + a130f
ntdll!7ff9506b0000  + 4b5e4
ntdll!7ff9506b0000  + 9fe3e
UE4Editor-CoreUObject!GetArchetypeFromRequiredInfoImpl(UClass const *,UObject const *,FName,EObjectFlags,bool) [UObjectArchetype.cpp:61]
UE4Editor-CoreUObject!GetArchetypeFromRequiredInfoImpl(UClass const *,UObject const *,FName,EObjectFlags,bool) [UObjectArchetype.cpp:82]
UE4Editor-CoreUObject!UObject::GetArchetype() [UObjectArchetype.cpp:207]
UE4Editor-CoreUObject!UObject::IsBasedOnArchetype(UObject const * const) [UnrealType.h:6096]
UE4Editor-CoreUObject!FObjectInstancingGraph::InstancePropertyValue(UObject *,UObject *,UObject *,bool,bool,bool) [CoreNative.cpp:286]
UE4Editor-CoreUObject!FObjectPropertyBase::InstanceSubobjects(void *,void const *,UObject *,FObjectInstancingGraph *) [PropertyBaseObject.cpp:52]
UE4Editor-CoreUObject!UStruct::InstanceSubobjectTemplates(void *,void const *,UStruct *,UObject *,FObjectInstancingGraph *) [Class.cpp:2155]
UE4Editor-CoreUObject!FObjectInitializer::InstanceSubobjects(UClass *,bool,bool) [UObjectGlobals.cpp:2936]
UE4Editor-CoreUObject!FObjectInitializer::PostConstructInit() [UObjectGlobals.cpp:2850]
UE4Editor-CoreUObject!FObjectInitializer::~FObjectInitializer() [UObjectGlobals.cpp:2704]
UE4Editor-CoreUObject!StaticConstructObject_Internal(FStaticConstructObjectParameters const &) [UObjectGlobals.cpp:3195]
UE4Editor-Engine!UWorld::SpawnActor(UClass *,FTransform const *,FActorSpawnParameters const &) [LevelActor.cpp:508]
UE4Editor-Engine!UWorld::SpawnActor(UClass *,FVector const *,FRotator const *,FActorSpawnParameters const &) [LevelActor.cpp:304]
UE4Editor-UnrealEd!static void ReplaceActorHelper(class AActor *, class UClass *, class UObject * & const, class UClass *, class TMap<UObject *,UObject *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<UObject *,UObject *,0> > & const, class TMap<UClass *,UClass *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<UClass *,UClass *,0> > & const, class TMap<FSoftObjectPath,UObject *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FSoftObjectPath,UObject *,0> > & const, class TMap<UObject *,FActorAttachmentData,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<UObject *,FActorAttachmentData,0> > & const, class TArray<FActorReplacementHelper,TSizedDefaultAllocator<32> > & const, bool, bool & const) [KismetReinstanceUtilities.cpp:1832]
UE4Editor-UnrealEd!FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner(TMap<UClass *,UClass *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<UClass *,UClass *,0> > &,UObject *,TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> *,bool,bool,bool,TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> const *,bool) [KismetReinstanceUtilities.cpp:2114]
UE4Editor-UnrealEd!FBlueprintCompileReinstancer::BatchReplaceInstancesOfClass(TMap<UClass *,UClass *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<UClass *,UClass *,0> > &,FBatchReplaceInstancesOfClassParameters const &) [KismetReinstanceUtilities.cpp:1517]
UE4Editor-Kismet!FBlueprintCompilationManagerImpl::FlushReinstancingQueueImpl() [BlueprintCompilationManager.cpp:1638]
UE4Editor-Kismet!FBlueprintCompilationManagerImpl::CompileSynchronouslyImpl(FBPCompileRequestInternal const &) [BlueprintCompilationManager.cpp:279]
UE4Editor-Kismet!FBlueprintCompilationManager::CompileSynchronously(FBPCompileRequest const &) [BlueprintCompilationManager.cpp:3090]
UE4Editor-UnrealEd!FBlueprintCompileReinstancer::CompileChildren() [KismetReinstanceUtilities.cpp:664]
UE4Editor-UnrealEd!FBlueprintCompileReinstancer::ReinstanceObjects(bool) [KismetReinstanceUtilities.cpp:767]
UE4Editor-HotReload!FHotReloadModule::ReinstanceClass(UClass *,UClass *,TMap<UClass *,UClass *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<UClass *,UClass *,0> > const &) [HotReload.cpp:1258]
UE4Editor-HotReload!FHotReloadModule::ReinstanceClasses() [HotReload.cpp:1244]
UE4Editor-HotReload!TBaseRawMethodDelegateInstance<0,FHotReloadModule,void ,FDefaultDelegateUserPolicy>::ExecuteIfSafe() [DelegateInstancesImpl.h:469]
UE4Editor-CoreUObject!UClassReplaceHotReloadClasses() [UObjectBase.cpp:842]
UE4Editor-CoreUObject!ProcessNewlyLoadedUObjects(FName,bool) [UObjectBase.cpp:1002]
UE4Editor-CoreUObject!TBaseStaticDelegateInstance<void ,FDefaultDelegateUserPolicy>::ExecuteIfSafe(FName,bool) [DelegateInstancesImpl.h:731]
UE4Editor-Core!TMulticastDelegate<void ,FDefaultDelegateUserPolicy>::Broadcast(FName,bool) [DelegateSignatureImpl.inl:955]
UE4Editor-Core!FModuleManager::LoadModuleWithFailureReason(FName,EModuleLoadResult &) [ModuleManager.cpp:508]
UE4Editor-Core!FModuleManager::LoadModule(FName) [ModuleManager.cpp:342]
UE4Editor-HotReload!FHotReloadModule::DoHotReloadInternal(TMap<FName,FString,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FName,FString,0> > const &,TArray<UPackage *,TSizedDefaultAllocator<32> > const &,TArray<FName,TSizedDefaultAllocator<32> > const &,FOutputDevice &) [HotReload.cpp:799]
UE4Editor-HotReload!static void UE4Function_Private::TFunctionRefCaller<<lambda_d85446a946c3f6776c68ebfeb93e5785>,void __cdecl(TMap<FName,FString,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FName,FString,0> > const &,bool,enum ECompilationResult::Type) [Function.h:549]
UE4Editor-HotReload!FHotReloadModule::CheckForFinishedModuleDLLCompile(EHotReloadFlags,bool &,bool &,FOutputDevice &,bool) [HotReload.cpp:1853]
UE4Editor-HotReload!FHotReloadModule::Tick(float) [HotReload.cpp:1415]
UE4Editor-Core!FTicker::Tick(float) [Ticker.cpp:95]
UE4Editor!7ff7bdaa0000  + d03c
UE4Editor!7ff7bdaa0000  + 2113c
UE4Editor!7ff7bdaa0000  + 2121a
UE4Editor!7ff7bdaa0000  + 3527d
UE4Editor!7ff7bdaa0000  + 37faa
KERNEL32!7ff950400000  + 17034
ntdll!7ff9506b0000  + 4d0d1

Have Comments or More Details?

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

2
Login to Vote

Fixed
ComponentUE - Foundation - Cpp Tools - Hot Reload
Affects Versions4.264.26.1
Target Fix4.26.1
Fix Commit15001414
Release Commit15001414
CreatedJan 5, 2021
ResolvedJan 6, 2021
UpdatedApr 27, 2021