Description

If the user has a project that casts to a widget to pull out a variable in a 4.7 project. This can cause a freeze after upgrading the project to 4.8 preview. This happens when the user compile the blueprint that is casting to the widget. The user will receive an error message. If the user then goes to the widget to recompile the widget blueprint this will cause the editor to freeze. The editor will need to be forced to shut down.

Example Error:

Warning Could not find a variable named "NewAnimation_2" in 'AnimTest_C'.
Make sure 'AnimTest_C' has been compiled for Get NewAnimation_2
Error The property associated with New Animation 2 could not be found

Output Log:

[2015.05.12-18.44.50:390][ 77]BlueprintLog: New page: Compile ScaleBoxTest
[2015.05.12-18.44.50:516][ 77]LogBlueprint:Warning: Generic delegate signature ref (InputActionHandlerDynamicSignature_DelegateSignature). Explicitly setting it to: '/Script/Engine.InputActionHandlerDynamicSignature_DelegateSignature'. Make sure this is correct (there could be multiple native delegate types with this name)?
[2015.05.12-18.44.50:523][ 77]LogBlueprint:Warning: Generic delegate signature ref (InputTouchHandlerDynamicSignature_DelegateSignature). Explicitly setting it to: '/Script/Engine.InputTouchHandlerDynamicSignature_DelegateSignature'. Make sure this is correct (there could be multiple native delegate types with this name)?
[2015.05.12-18.44.50:528][ 77]LogBlueprint:Warning: Generic delegate signature ref (InputActionHandlerDynamicSignature_DelegateSignature). Explicitly setting it to: '/Script/Engine.InputActionHandlerDynamicSignature_DelegateSignature'. Make sure this is correct (there could be multiple native delegate types with this name)?
[2015.05.12-18.44.50:529][ 77]LogBlueprint:Warning: Generic delegate signature ref (InputActionHandlerDynamicSignature_DelegateSignature). Explicitly setting it to: '/Script/Engine.InputActionHandlerDynamicSignature_DelegateSignature'. Make sure this is correct (there could be multiple native delegate types with this name)?
[2015.05.12-18.44.50:757][ 77]LogActorComponent: UnregisterComponent: (/Engine/Transient.CharMoveComp) Not registered. Aborting.
[2015.05.12-18.44.50:758][ 77]LogActorComponent: UnregisterComponent: (/Engine/Transient.ProjectileMovementComponent_40__A6522401) Not registered. Aborting.
[2015.05.12-18.44.51:151][ 77]LogUObjectBase:Error: 'this' pointer is misaligned.
Fatal error: [Link Removed] [Line: 393]
Invalid object in GC: 0x00000074006e0069, ReferencingObject: FirstPersonCharacter_C /Game/FirstPersonBP/Maps/FirstPersonExampleMap.FirstPersonExampleMap:PersistentLevel.FirstPersonCharacter_C_0, ReferencingProperty: ObjectProperty /Game/FirstPersonBP/Blueprints/FirstPersonCharacter.FirstPersonCharacter_C:ExecuteUbergraph_FirstPersonCharacter.CallFunc_Create_ReturnValue
UE4Editor-Win64-Debug.exe has triggered a breakpoint.

Steps to Reproduce
  1. Open a 4.7 first person project
  2. Create a new widget blueprint
    Right click content browser > User interface > Widget blueprint
  3. Open the widget
  4. Add a button to the designer tab
  5. Compile and save
  6. Open the first person character blueprint
  7. Cast to the widget and pull out a reference to the button that was added (see attached graph picture)
    Event begin play > Create widget > Drag off the blue pin > Type "Get button"
  8. Compile and save
  9. upgrade project to the 4.8 preview (used convert project option)
  10. Open the first person character blueprint
  11. Compile and save
  12. Notice the error that was mentioned in the description
  13. Open the widget blueprint created previously (with the button in it)
  14. Compile and save
  15. Notice the Editor freezes up and needs to be shutdown by force

Nick's Notes:

I've created a project that reproduces it, just open it in 4.8 or ML and Open ScaleBoxTest and hit Compile.

[Link Removed]

What I've determined so far is that during GC we get to released memory when performing offsets due to the token stream. Now either, the TokenStream is invalid and needs to be rebuilt because the offsets are no longer valid. Or the memory is being GCed incorrectly and not being nulled out. The particular bogus memory appears to be the offset location for the temporary object coming from the CreateWidget call, or maybe for the button member access node? Not entirely certain which one is the source.

Callstack
MachineId:0C0E5E3C4A233AEF24B205A4344718B2
EpicAccountId:a93319c1a68241d295f2574a4ba3da59

Unknown exception - code 00000001 (first/second chance not available)

"Fatal error: [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.8\Engine\Source\Runtime\CoreUObject\Private\

KERNELBASE
UE4Editor_Core!FOutputDeviceWindowsError::Serialize() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsplatformoutputdevices.cpp:95]
UE4Editor_Core!FOutputDevice::Logf__VA() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\misc\outputdevice.cpp:144]
UE4Editor_Core!FDebug::AssertFailed() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\misc\outputdevice.cpp:360]
UE4Editor_CoreUObject!FGCCollector::HandleObjectReference() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\garbagecollection.cpp:390]
UE4Editor_Engine!FSimpleObjectReferenceCollectorArchive::operator<<() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\public\uobject\garbagecollection.h:461]
UE4Editor_CoreUObject!UObjectProperty::SerializeItem() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\propertyobject.cpp:32]
UE4Editor_CoreUObject!UStruct::SerializeBin() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\class.cpp:760]
UE4Editor_Engine!UBlueprintGeneratedClass::AddReferencedObjectsInUbergraphFrame() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\engine\private\blueprintgeneratedclass.cpp:734]
UE4Editor_CoreUObject!FArchiveRealtimeGC::ProcessObjectArray() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\garbagecollection.cpp:832]
UE4Editor_CoreUObject!TGraphTask<FArchiveRealtimeGC::FGCTask>::ExecuteTask() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\public\async\taskgraphinterfaces.h:771]
UE4Editor_Core!FTaskThread::ProcessTasks() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\async\taskgraph.cpp:430]
UE4Editor_Core!FTaskThread::ProcessTasksUntilQuit() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\async\taskgraph.cpp:273]
UE4Editor_Core!FTaskThread::Run() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\async\taskgraph.cpp:564]
UE4Editor_Core!FRunnableThreadWin::Run() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:73]
UE4Editor_Core!FRunnableThreadWin::GuardedRun() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:26]
kernel32
ntdll


Community References

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions4.8
Target Fix4.8
Fix Commit2553904
Release Commit2554029
CreatedMay 7, 2015
ResolvedMay 16, 2015
UpdatedApr 27, 2018