Bulk compiling more than one Blueprint class asset without incurring a garbage collection pass in between each compile can result in a crash during reference replacement, as serialization may end up finding a reference to the current recompiled class in the build artifacts left over from a previous compile, which would otherwise have been cleaned up by garbage collection.
Currently one known instance of this occuring with the CompileAllBlueprints commandlet, which explicitly disables garbage collection as a post-compile step for performance reasons.
N/A (various reports) - see comments
> UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyProxyArchive::operator<<(FField * & Value) Line 46 C++
UE4Editor-CoreUObject-Win64-Debug.dll!UStruct::SerializeExpr(int & iCode, FArchive & Ar) Line 182 C++
UE4Editor-CoreUObject-Win64-Debug.dll!UStruct::Serialize(FArchive & Ar) Line 1947 C++
UE4Editor-CoreUObject-Win64-Debug.dll!UFunction::Serialize(FArchive & Ar) Line 5601 C++
UE4Editor-CoreUObject-Win64-Debug.dll!FArchiveReplaceObjectRefBase::SerializeObject(UObject * ObjectToSerialize) Line 243 C++
UE4Editor-UnrealEd-Win64-Debug.dll!FArchiveReplaceObjectRef<UObject>::SerializeSearchObject() Line 129 C++
UE4Editor-UnrealEd-Win64-Debug.dll!FReplaceReferenceHelper::FindAndReplaceReferences(const TArray<UObject *,TSizedDefaultAllocator<32>> & SourceObjects, TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> * ObjectsThatShouldUseOldStuff, const TArray<UObject *,TSizedDefaultAllocator<32>> & ObjectsToReplace, const TMap<UObject *,UObject *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<UObject *,UObject *,0>> & OldToNewInstanceMap, const TMap<FSoftObjectPath,UObject *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FSoftObjectPath,UObject *,0>> & ReinstancedObjectsWeakReferenceMap) Line 154 C++
UE4Editor-UnrealEd-Win64-Debug.dll!FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner(TMap<UClass *,UClass *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<UClass *,UClass *,0>> & InOldToNewClassMap, UObject * InOriginalCDO, TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> * ObjectsThatShouldUseOldStuff, bool bClassObjectReplaced, bool bPreserveRootComponent, bool bArchetypesAreUpToDate, const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> * InstancesThatShouldUseOldClass, bool bReplaceReferencesToOldClasses) Line 2226 C++
UE4Editor-UnrealEd-Win64-Debug.dll!FBlueprintCompileReinstancer::BatchReplaceInstancesOfClass(TMap<UClass *,UClass *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<UClass *,UClass *,0>> & InOldToNewClassMap, const FBatchReplaceInstancesOfClassParameters & Options) Line 1517 C++
UE4Editor-Kismet-Win64-Debug.dll!FBlueprintCompilationManagerImpl::FlushReinstancingQueueImpl() Line 1638 C++
UE4Editor-Kismet-Win64-Debug.dll!FBlueprintCompilationManagerImpl::CompileSynchronouslyImpl(const FBPCompileRequestInternal & Request) Line 279 C++
UE4Editor-Kismet-Win64-Debug.dll!FBlueprintCompilationManager::CompileSynchronously(const FBPCompileRequest & Request) Line 3090 C++
UE4Editor-UnrealEd-Win64-Debug.dll!FKismetEditorUtilities::CompileBlueprint(UBlueprint * BlueprintObj, EBlueprintCompileOptions CompileFlags, FCompilerResultsLog * pResults) Line 754 C++
UE4Editor-UnrealEd-Win64-Debug.dll!UCompileAllBlueprintsCommandlet::CompileBlueprint(UBlueprint * Blueprint) Line 315 C++
UE4Editor-UnrealEd-Win64-Debug.dll!UCompileAllBlueprintsCommandlet::BuildBlueprints() Line 162 C++
UE4Editor-UnrealEd-Win64-Debug.dll!UCompileAllBlueprintsCommandlet::Main(const FString & Params) Line 40 C++
UE4Editor-Win64-Debug.exe!FEngineLoop::PreInitPostStartupScreen(const wchar_t * CmdLine) Line 3369 C++
UE4Editor-Win64-Debug.exe!FEngineLoop::PreInit(const wchar_t * CmdLine) Line 3591 C++
UE4Editor-Win64-Debug.exe!EnginePreInit(const wchar_t * CmdLine) Line 42 C++
UE4Editor-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine) Line 127 C++
UE4Editor-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 257 C++
I am not able to find world outliner how to enable it?
How to achieve HLSL Multiple Render Target in Material blueprints?
What property of the Slider is the image used when dragging?
What properties of the progress bar can be used for drag and drop highlighting?
What method is used to fill polygonal regions when drawing spline mesh at run time?
How does TextureRenderTarget2D get TArray<uint8> type data?
How do I set up the actor's widget component to respond to OnKeyDown events?
How can the actor attribute variable generate Drinking straw icon?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-109057 in the post.
1 |
Component | UE - Gameplay - Blueprint |
---|---|
Target Fix | 4.27 |
Created | Feb 20, 2021 |
---|---|
Resolved | Jun 9, 2021 |
Updated | Dec 1, 2022 |