This issue doesn't crash in 4.21. It is rewritten as GIsSavingPackage = true in UPackage::(Save() when Blueprint is saved, but it's rewritten as false in 4.21.
Workaround
Do not set the String Table in default value.
Result:
Crash the editor.
Expect:
Not occur crash
Fatal log :
UE_LOG(LogUObjectGlobals, Fatal,TEXT("Illegal call to StaticFindObjectFast() while serializing object data or garbage collecting!"));
Call stack :
[Inline Frame] UE4Editor-CoreUObject.dll!StaticFindObjectFast::__l11::<lambda_fa128483d8cc361e19d4970e39befa3c>::operator()() Line 280 C++ UE4Editor-CoreUObject.dll!StaticFindObjectFast(UClass * ObjectClass, UObject * ObjectPackage, FName ObjectName, bool ExactClass, bool AnyPackage, EObjectFlags ExclusiveFlags, EInternalObjectFlags ExclusiveInternalFlags) Line 280 C++ UE4Editor-CoreUObject.dll!ResolveName(UObject * & InPackage, FString & InOutName, bool Create, bool Throw, unsigned int LoadFlags, FUObjectSerializeContext * InLoadContext) Line 748 C++ UE4Editor-CoreUObject.dll!StaticLoadObjectInternal(UClass * ObjectClass, UObject * InOuter, const wchar_t * InName, const wchar_t * Filename, unsigned int LoadFlags, UPackageMap * Sandbox, bool bAllowObjectReconciliation, FUObjectSerializeContext * InSerializeContext) Line 813 C++ UE4Editor-CoreUObject.dll!StaticLoadObject(UClass * ObjectClass, UObject * InOuter, const wchar_t * InName, const wchar_t * Filename, unsigned int LoadFlags, UPackageMap * Sandbox, bool bAllowObjectReconciliation, FUObjectSerializeContext * InSerializeContext) Line 888 C++ UE4Editor-CoreUObject.dll!FSoftObjectPath::TryLoad(FUObjectSerializeContext * InLoadContext) Line 353 C++ UE4Editor-Engine.dll!FStringTableEngineBridge::LoadStringTableAssetImpl(const FName InTableId, TFunction<void __cdecl(FName,FName)> InLoadedCallback) Line 196 C++ UE4Editor-Core.dll!IStringTableEngineBridge::LoadStringTableAsset(const FName InTableId, TFunction<void __cdecl(FName,FName)> InLoadedCallback) Line 192 C++ UE4Editor-Core.dll!FTextHistory_StringTableEntry::FStringTableReferenceData::ConditionalBeginAssetLoad() Line 2688 C++ [Inline Frame] UE4Editor-Core.dll!FTextHistory_StringTableEntry::FStringTableReferenceData::Initialize(unsigned short *) Line 2591 C++ UE4Editor-Core.dll!FTextHistory_StringTableEntry::ReadFromBuffer(const wchar_t * Buffer, const wchar_t * TextNamespace, const wchar_t * PackageNamespace, TSharedPtr<FString,1> & OutDisplayString) Line 2535 C++ UE4Editor-Core.dll!FTextStringHelper::ReadFromBuffer_ComplexText(const wchar_t * Buffer, FText & OutValue, const wchar_t * TextNamespace, const wchar_t * PackageNamespace) Line 1571 C++ UE4Editor-Core.dll!FTextStringHelper::ReadFromBuffer(const wchar_t * Buffer, FText & OutValue, const wchar_t * TextNamespace, const wchar_t * PackageNamespace, const bool bRequiresQuotes) Line 1606 C++ UE4Editor-Engine.dll!UEdGraphSchema::DoesDefaultValueMatchAutogenerated(const UEdGraphPin & InPin) Line 505 C++ UE4Editor-BlueprintGraph.dll!UEdGraphSchema_K2::DoesDefaultValueMatchAutogenerated(const UEdGraphPin & InPin) Line 4821 C++ [Inline Frame] UE4Editor-Engine.dll!UEdGraphPin::DoesDefaultValueMatchAutogenerated() Line 690 C++ UE4Editor-Engine.dll!`anonymous namespace'::GatherGraphNodeForLocalization(const UObject * const Object, FPropertyLocalizationDataGatherer & PropertyLocalizationDataGatherer, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 136 C++ [Inline Frame] UE4Editor-CoreUObject.dll!UE4Function_Private::TFunctionRefBase<UE4Function_Private::TFunctionStorage<0>,void __cdecl(UObject const *,FPropertyLocalizationDataGatherer &,enum EPropertyLocalizationGathererTextFlags)>::operator()(const UObject * <Params_0>, FPropertyLocalizationDataGatherer & <Params_2>, EPropertyLocalizationGathererTextFlags) Line 614 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectWithCallbacks(const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 95 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties(const FString & PathToParent, const UProperty * const Property, const void * const ValueAddress, const void * const DefaultValueAddress, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 335 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties(const FString & PathToParent, const UProperty * const Property, const void * const ValueAddress, const void * const DefaultValueAddress, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 282 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectFields(const FString & PathToParent, const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 161 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObject(const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 114 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectWithCallbacks(const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 101 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties(const FString & PathToParent, const UProperty * const Property, const void * const ValueAddress, const void * const DefaultValueAddress, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 335 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties(const FString & PathToParent, const UProperty * const Property, const void * const ValueAddress, const void * const DefaultValueAddress, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 282 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectFields(const FString & PathToParent, const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 161 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObject(const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 114 C++ UE4Editor-Engine.dll!`anonymous namespace'::GatherBlueprintForLocalization(const UObject * const Object, FPropertyLocalizationDataGatherer & PropertyLocalizationDataGatherer, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 278 C++ [Inline Frame] UE4Editor-CoreUObject.dll!UE4Function_Private::TFunctionRefBase<UE4Function_Private::TFunctionStorage<0>,void __cdecl(UObject const *,FPropertyLocalizationDataGatherer &,enum EPropertyLocalizationGathererTextFlags)>::operator()(const UObject * <Params_0>, FPropertyLocalizationDataGatherer & <Params_2>, EPropertyLocalizationGathererTextFlags) Line 614 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectWithCallbacks(const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 95 C++ UE4Editor-CoreUObject.dll!FPropertyLocalizationDataGatherer::FPropertyLocalizationDataGatherer(TArray<FGatherableTextData,FDefaultAllocator> & InOutGatherableTextDataArray, const UPackage * const InPackage, EPropertyLocalizationGathererResultFlags & OutResultFlags) Line 41 C++ > UE4Editor-CoreUObject.dll!UPackage::Save(UPackage * InOuter, UObject * Base, EObjectFlags TopLevelFlags, const wchar_t * Filename, FOutputDevice * Error, FLinkerLoad * Conform, bool bForceByteSwapping, bool bWarnOfLongFilename, unsigned int SaveFlags, const ITargetPlatform * TargetPlatform, const FDateTime & FinalTimeStamp, bool bSlowTask, FArchiveDiffMap * InOutDiffMap) Line 4594 C++ UE4Editor-UnrealEd.dll!UEditorEngine::Save(UPackage * InOuter, UObject * InBase, EObjectFlags TopLevelFlags, const wchar_t * Filename, FOutputDevice * Error, FLinkerLoad * Conform, bool bForceByteSwapping, bool bWarnOfLongFilename, unsigned int SaveFlags, const ITargetPlatform * TargetPlatform, const FDateTime & FinalTimeStamp, bool bSlowTask, FArchiveDiffMap * InOutDiffMap) Line 4341 C++ UE4Editor-UnrealEd.dll!UEditorEngine::SavePackage(UPackage * InOuter, UObject * InBase, EObjectFlags TopLevelFlags, const wchar_t * Filename, FOutputDevice * Error, FLinkerLoad * Conform, bool bForceByteSwapping, bool bWarnOfLongFilename, unsigned int SaveFlags, const ITargetPlatform * TargetPlatform, const FDateTime & FinalTimeStamp, bool bSlowTask) Line 4396 C++ UE4Editor-UnrealEd.dll!UEditorEngine::Exec_Obj(const wchar_t * Str, FOutputDevice & Ar) Line 4479 C++ UE4Editor-UnrealEd.dll!UEditorEngine::Exec(UWorld * InWorld, const wchar_t * Stream, FOutputDevice & Ar) Line 5556 C++ UE4Editor-UnrealEd.dll!UUnrealEdEngine::Exec(UWorld * InWorld, const wchar_t * Stream, FOutputDevice & Ar) Line 691 C++ UE4Editor-UnrealEd.dll!InternalSavePackage(UPackage * PackageToSave, bool bUseDialog, bool & bOutPackageLocallyWritable, FOutputDevice & SaveOutput) Line 2914 C++ UE4Editor-UnrealEd.dll!InternalPromptForCheckoutAndSave(const TArray<UPackage *,FDefaultAllocator> & FinalSaveList, bool bUseDialog, TArray<UPackage *,FDefaultAllocator> & OutFailedPackages) Line 3420 C++ UE4Editor-UnrealEd.dll!FEditorFileUtils::PromptForCheckoutAndSave(const TArray<UPackage *,FDefaultAllocator> & InPackages, bool bCheckDirty, bool bPromptToSave, TArray<UPackage *,FDefaultAllocator> * OutFailedPackages, bool bAlreadyCheckedOut, bool bCanBeDeclined) Line 3685 C++ UE4Editor-UnrealEd.dll!FAssetEditorToolkit::SaveAsset_Execute() Line 531 C++ [Inline Frame] UE4Editor-UnrealEd.dll!TMemberFunctionCaller<FAssetEditorToolkit,void (__cdecl FAssetEditorToolkit::*)(void)>::operator()() Line 156 C++ [Inline Frame] UE4Editor-UnrealEd.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter(TMemberFunctionCaller<FAssetEditorToolkit,void (__cdecl FAssetEditorToolkit::*)(void)> &&) Line 498 C++ [Inline Frame] UE4Editor-UnrealEd.dll!TBaseSPMethodDelegateInstance<0,FAssetEditorToolkit,0,TTypeWrapper<void> __cdecl(void)>::Execute() Line 279 C++ UE4Editor-UnrealEd.dll!TBaseSPMethodDelegateInstance<0,FAssetEditorToolkit,0,void __cdecl(void)>::ExecuteIfSafe() Line 355 C++ UE4Editor-Slate.dll!FUICommandList::ExecuteAction(const TSharedRef<FUICommandInfo const ,0> InUICommandInfo) Line 99 C++ UE4Editor-Slate.dll!SToolBarButtonBlock::OnClicked() Line 300 C++ [Inline Frame] UE4Editor-Slate.dll!TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void)>::operator()() Line 156 C++ [Inline Frame] UE4Editor-Slate.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter(TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void)> &&) Line 498 C++ UE4Editor-Slate.dll!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl(void)>::Execute() Line 279 C++ [Inline Frame] UE4Editor-Slate.dll!TBaseDelegate<FReply>::Execute() Line 561 C++ UE4Editor-Slate.dll!SButton::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 293 C++ [Inline Frame] UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent::__l8::<lambda_6c1f6b862bcfb82ea6dcab28fbcc9463>::operator()(const FArrangedWidget &) Line 5608 C++ UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_6c1f6b862bcfb82ea6dcab28fbcc9463> >(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::__l8::<lambda_6c1f6b862bcfb82ea6dcab28fbcc9463> & Lambda) Line 271 C++ UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent) Line 5594 C++ UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent(const FPointerEvent & MouseEvent) Line 6199 C++ UE4Editor-Slate.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const FVector2D CursorPos) Line 6172 C++ UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 1842 C++ UE4Editor-ApplicationCore.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,0> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2292 C++ UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 1522 C++ UE4Editor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 772 C++ [External Code] [Inline Frame] UE4Editor-ApplicationCore.dll!WinPumpMessages() Line 107 C++ UE4Editor-ApplicationCore.dll!FWindowsPlatformApplicationMisc::PumpMessages(bool bFromMainLoop) Line 130 C++ UE4Editor.exe!FEngineLoop::Tick() Line 3882 C++ [Inline Frame] UE4Editor.exe!EngineTick() Line 62 C++ UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 168 C++ UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 261 C++ [External Code]
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-72915 in the post.
0 |
Component | UE - Foundation - Core |
---|---|
Affects Versions | 4.22 |
Created | Apr 17, 2019 |
---|---|
Resolved | Apr 17, 2019 |
Updated | Jul 14, 2021 |