Description

Crash on undo with SpawnActor node that uses a reroute pin in class wire.

 

"It looks like the variable promotion marks the blueprint as structurally modified, which triggers a skeleton compile, which causes the knot to propagate it's type, which causes the SpawnActorFromClass to respond to its class pin changing and knocks-on the class-specific pins, which gets caught up in the transaction buffer, etc... When undo applies the transaction, the load-half of the Apply performs serialization which trashes pins via SerializePinArray (it looks like due to an ArrayNum mismatch from the previously mentioned sequence of actions.) Later, serialization occurs again due to the post-undo code marking the blueprint as structurally modified, which hits a check-crash in SerializePinArray due to a trashed pin."

 

Also Occuring Main CL 4329255

Steps to Reproduce
  1. Create a new Actor or Subclass of Actor
  2. Add Spawn Actor Node
  3. Promote Class to Variable, Split Spawn Transform Struct, Promote Instigator to variable.
  4. Add a reroute node on class variable wire
  5. Promote Owner to Variable, Undo action

Result: Crash

Slightly different result in Main: Wire to instigator pin will disappear after undo (pin will still show as connected) Crash will occur if you mouse over instigator var get node or try to recompile. 

Callstack

Assertion failed: !PinRef->bWasTrashed [Link Removed] [Line: 1843]

UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:425]
UE4Editor_Engine!UEdGraphPin::SerializePin() [d:\build\++ue4\sync\engine\source\runtime\engine\private\edgraph\edgraphpin.cpp:1843]
UE4Editor_Engine!UEdGraphPin::SerializePinArray() [d:\build\++ue4\sync\engine\source\runtime\engine\private\edgraph\edgraphpin.cpp:1789]
UE4Editor_Engine!UEdGraphPin::Serialize() [d:\build\++ue4\sync\engine\source\runtime\engine\private\edgraph\edgraphpin.cpp:1603]
UE4Editor_Engine!UEdGraphPin::SerializePin() [d:\build\++ue4\sync\engine\source\runtime\engine\private\edgraph\edgraphpin.cpp:1964]
UE4Editor_Engine!UEdGraphPin::SerializePinArray() [d:\build\++ue4\sync\engine\source\runtime\engine\private\edgraph\edgraphpin.cpp:1789]
UE4Editor_Engine!UEdGraphNode::Serialize() [d:\build\++ue4\sync\engine\source\runtime\engine\private\edgraph\edgraphnode.cpp:176]
UE4Editor_BlueprintGraph!UK2Node::Serialize() [d:\build\++ue4\sync\engine\source\editor\blueprintgraph\private\k2node.cpp:116]
UE4Editor_BlueprintGraph!UK2Node_Variable::Serialize() [d:\build\++ue4\sync\engine\source\editor\blueprintgraph\private\k2node_variable.cpp:31]
UE4Editor_CoreUObject!StaticDuplicateObjectEx() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:2094]
UE4Editor_UnrealEd!FEdGraphUtilities::CloneGraph() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\edgraphutilities.cpp:223]
UE4Editor_UnrealEd!FEdGraphUtilities::CloneAndMergeGraphIn() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\edgraphutilities.cpp:266]
UE4Editor_KismetCompiler!FKismetCompilerContext::MergeUbergraphPagesIn() [d:\build\++ue4\sync\engine\source\editor\kismetcompiler\private\kismetcompiler.cpp:2904]
UE4Editor_KismetCompiler!FKismetCompilerContext::CreateAndProcessUbergraph() [d:\build\++ue4\sync\engine\source\editor\kismetcompiler\private\kismetcompiler.cpp:3138]
UE4Editor_KismetCompiler!FKismetCompilerContext::CreateFunctionList() [d:\build\++ue4\sync\engine\source\editor\kismetcompiler\private\kismetcompiler.cpp:3683]
UE4Editor_KismetCompiler!FKismetCompilerContext::CompileClassLayout() [d:\build\++ue4\sync\engine\source\editor\kismetcompiler\private\kismetcompiler.cpp:3935]
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprintInner() [d:\build\++ue4\sync\engine\source\editor\kismetcompiler\private\kismetcompilermodule.cpp:132]
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprint() [d:\build\++ue4\sync\engine\source\editor\kismetcompiler\private\kismetcompilermodule.cpp:219]
UE4Editor_UnrealEd!FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\kismet2\blueprinteditorutils.cpp:2126]
UE4Editor_Kismet!FixSubObjectReferencesPostUndoRedo() [d:\build\++ue4\sync\engine\source\editor\kismet\private\blueprinteditormodule.cpp:139]
UE4Editor_UnrealEd!UEditorEngine::BroadcastPostUndo() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editorserver.cpp:5071]
UE4Editor_UnrealEd!UEditorEngine::HandleTransactorUndo() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editorserver.cpp:1191]
UE4Editor_UnrealEd!TBaseUObjectMethodDelegateInstance<0,UEditorEngine,void __cdecl(FUndoSessionContext,bool)>::ExecuteIfSafe() [d:\build\++ue4\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:657]
UE4Editor_UnrealEd!TBaseMulticastDelegate<void,FUndoSessionContext,bool>::Broadcast() [d:\build\++ue4\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:937]
UE4Editor_UnrealEd!UTransBuffer::Undo() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editortransaction.cpp:1253]
UE4Editor_UnrealEd!UEditorEngine::UndoTransaction() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editorserver.cpp:1380]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:345]
UE4Editor_Slate!FUICommandList::ConditionalProcessCommandBindings() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:216]
UE4Editor_Slate!FUICommandList::ProcessCommandBindings() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:160]
UE4Editor_UnrealEd!FBaseToolkit::ProcessCommandBindings() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\toolkits\basetoolkit.cpp:74]
UE4Editor_UnrealEd!SStandaloneAssetEditorToolkitHost::OnKeyDown() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\toolkits\sstandaloneasseteditortoolkithost.cpp:324]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FKeyEvent,<lambda_2afcd964c763e269e2d1a63f3a72f846> >() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:268]
UE4Editor_Slate!FSlateApplication::ProcessKeyDownEvent() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5041]
UE4Editor_Slate!FSlateApplication::OnKeyDown() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4953]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1571]
UE4Editor_ApplicationCore!FWindowsApplication::DeferMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:2182]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:895]
UE4Editor_ApplicationCore!FWindowsApplication::AppWndProc() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:732]
user32
user32
UE4Editor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsplatformapplicationmisc.cpp:129]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3417]
UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:144]
UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:223]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283]
kernel32
ntdll

Have Comments or More Details?

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

2
Login to Vote

Cannot Reproduce
ComponentGameplay - Blueprint
Affects Versions4.19.24.20.24.21
Target Fix4.21
Fix Commit4449972
Main Commit4468496
CreatedSep 4, 2018
ResolvedOct 11, 2018
UpdatedOct 15, 2018