Description

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. 

 

Steps to Reproduce
  1. Create Actor Blueprint and StringTable assets.
  2. Open String Table and add any text sets.
  3. Open Actor Blueprint and adding new function.
  4. Add Text variable to inputs.
  5. Set the String Table in Default Value.
  6. Compile and save the blueprint.

Result:

 Crash the editor.

Expect:

 Not occur crash

 

Callstack

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]

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-72915 in the post.

0
Login to Vote

Duplicate
ComponentCore
Affects Versions4.22
CreatedApr 17, 2019
ResolvedApr 17, 2019
UpdatedApr 22, 2019