Crash on BP compile with spline component and construction script

getting constant crashes on each compile of a BP class with a spline component and a construction script accessing it…

thats the construction script/BP class in question:

and thats all that really is to that class…nothing in the event graph at all…

it appears to compile ONCE if i untick “run construction script on drag”, but crashes again on the second compile…worked fine in 4.7.

and the crash log (also submitted via reporter…several times, sry ^^):

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

"Assertion failed: ((UObject*)ContainerPtr)->IsA((UClass*)GetOuter()) [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.8\Engine\Source\Runtime\CoreUObject\Public\UObject\UnrealType.h] [Li

UE4Editor_Core!FDebug::AssertFailed() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\misc\outputdevice.cpp:355]
UE4Editor_CoreUObject!UObject::execInstanceVariable() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1074]
UE4Editor_CoreUObject!UObject::ProcessContextOpcode() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1552]
UE4Editor_CoreUObject!UObject::ProcessContextOpcode() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1545]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:673]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\class.cpp:4125]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1023]
UE4Editor_Engine!AActor::ProcessEvent() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\engine\private\actor.cpp:520]
UE4Editor_Engine!AActor::ProcessUserConstructionScript() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\engine\private\actorconstruction.cpp:539]
UE4Editor_Engine!AActor::ExecuteConstruction() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\engine\private\actorconstruction.cpp:487]
UE4Editor_Engine!AActor::RerunConstructionScripts() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\engine\private\actorconstruction.cpp:366]
UE4Editor_Engine!AActor::PostEditChangeProperty() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\engine\private\actoreditor.cpp:113]
UE4Editor_Engine!ACameraActor::PostEditChangeProperty() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\engine\private\camera\cameraactor.cpp:77]
UE4Editor_CoreUObject!UObject::PostEditChange() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\private\uobject\obj.cpp:286]
UE4Editor_UnrealEd!FBlueprintEditorUtils::PostEditChangeBlueprintActors() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\kismet2\blueprinteditorutils.cpp:6972]
UE4Editor_Kismet!FBlueprintEditor::OnBlueprintChangedImpl() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\kismet\private\blueprinteditor.cpp:2949]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper cdecl(UBlueprint * ptr64)>::Execute() [d:\buildfarm\buildmachine++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:282]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void cdecl(UBlueprint * ptr64)>::ExecuteIfSafe() [d:\buildfarm\buildmachine++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:388]
UE4Editor_Engine!TBaseMulticastDelegate::Broadcast() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegatesignatureimpl_variadics.inl:1031]
UE4Editor_UnrealEd!FKismetEditorUtilities::RecompileBlueprintBytecode() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:933]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReinstanceObjects() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:543]
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:780]
UE4Editor_Kismet!FBlueprintEditor::Compile() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\editor\kismet\private\blueprinteditor.cpp:3016]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper cdecl(void)>::Execute() [d:\buildfarm\buildmachine++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:282]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void cdecl(void)>::ExecuteIfSafe() [d:\buildfarm\buildmachine++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:388]
UE4Editor_Slate!FUICommandList::ExecuteAction() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:75]
UE4Editor_Slate!SToolBarButtonBlock::OnClicked() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\runtime\slate\private\framework\multibox\stoolbarbuttonblock.cpp:296]
UE4Editor_Slate!TMemberFunctionCaller::operator()<>() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegateinstanceinterface_variadics.h:161]
UE4Editor_Slate!TTupleImpl >::ApplyAfter_ExplicitReturnType >() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\tuple.h:113]
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply cdecl(void)>::Execute() [d:\buildfarm\buildmachine++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:282]
UE4Editor_Slate!TBaseDelegate::Execute() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegatesignatureimpl_variadics.inl:440]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:225]
UE4Editor_Slate!::operator()() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4170]
UE4Editor_Slate!FEventRouter::Route >() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:212]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4173]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4133]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsapplication.cpp:1403]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsapplication.cpp:1708]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsapplication.cpp:706]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsapplication.cpp:628]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:792]
UE4Editor!FEngineLoop::Tick() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\launch\private\launchengineloop.cpp:2323]
UE4Editor!GuardedMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor!GuardedMainWrapper() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]

Hi Ollinator,

I wasn’t able to reproduce this crash on my end but I did notice a slight difference in the ‘Add Billboard Component’ node. It looks like you split the ‘Relative Transform’ which is fine but for some reason your node still has the original ‘Relative Transform’ listed. Mine does not:

50438-addbillboard01.jpg

I’m wondering if that node is corrupted. Try deleting it and compiling to see if you still get the crash.

Also, are you using 4.8 or one of the Hotfixes (4.8.1, 4.8.2)?

nice catch! that was indeed the issue!

im seeing this behaviour quite often lately when using split struct pins, it never caused a crash till now though…

i already tried to narrow it down as well and noted it didnt cause a crash in another level…only in one specific one. the differences between the levels (regarding the spline class usage) is, that the crashing level contains a camera BP which references this spline class through a property and using it in its construction script to place it (the camera) at a specific position along the spline (position being controlled by another property). i highly suspected this to be the cause (because ExecuteConstruction() appearance in the callstack), but it seems it wasnt (wasnt able yet to rebuild this setup in a clean project; and now its not crashing anymore…though! ^^). but maybe it helps narrowing it down…

i have no idea what caused the faulty struct pin…4.7 → 4.8 conversion maybe? havent touched that node since 4.7.

oh and i was on 4.8.2 at the time the crash happened the first time (but hadnt worked on this class after upgrading to 4.8…).

cheers and thanks for the help! :slight_smile:

too happy too soon! it keeps crashing again…and the split struct pin broke again after restarting the editor…im using a make “transform” node now to rule this one out as the crash causer; and it keeps crashing randomly after X amount of recompiles…it might work or it might crash…

back to the drawing board… :frowning:

i played around with the referencing camera actor (clearing the reference) and didnt see the crash in about 10 recompiles…it seems to at least make it crash less frequent…
this is whats inside this camera’s construction script: Bild: splinerefcamfqsfp.png - abload.de
(the idea is: you select the camera, assign the preview spline and slide the preview position back and forth to see what the camera will see ingame along the spline)

apart from that, no clear STR though, sorry :confused:

No problem. Could you include either your Machine Name or Epic ID from the crash reporter? This will allow me to find your crash report easier. Also make sure that you are submitting them each time you crash.

i do submit all of them, yes…must be ~20 or so by now…

MachineId:A3BC5F6C4E95D5E4D5787C850CB9A5E0

So it looks like this crash isn’t widespread, the only reports are from your machine. While we look into the error, have you tried to reproduce it in a new project yet?

Also, do you have any custom code in your project or is it blueprint only?

I also created JIRA UE-18797 for this crash so our developers will be investigating this issue as well.

pure blueprint, yes. and yes, i’ve managed to repro it in a blank project now: http://ojay.eqil.de/SplineCrash.zip

STR:

  1. open the TestMap
  2. open the SimpleSpline blueprint
  3. add a new variable
  4. compile

result: crash.

workaround:

  1. select the SplineCamera actor in the level
  2. clear the “PreviewSpline” property
  3. repeat STR from above

result: no crash.

so it seems to be somehow the two contruction scripts interfering with each other…

cheers :slight_smile:

Hmm, I tested your project on 2 different machines but I still couldn’t reproduce the crash. I seems to be specific to your PC.

Without a repro case we aren’t able to hunt down a fix. If you have the time and access to another machine, feel free to attempted a repro there as well. If not, the workaround you mentioned doesn’t seem to intrusive.

I downloaded the zip with the fresh project myself, put it into a new folder and wasnt able to repro it there myself!

Then i went back to the project that crashed before, did the STR and: CRASH! so…something else is messed up in that project? even though it was created as a clean blank project?

alright, so i now packaged the WHOLE folder, including intermediate and saved folders, maybe THAT one helps to find the crash… → http://ojay.eqil.de/SplineCrash2.zip

if not, then well…i’d be out of ideas really :slight_smile:

I’m not sure why your comment didn’t actually post but I saw the email notification and downloaded the new test project from that. The crash still doesn’t occur for me here.

I’m not sure what would be causing it to only crash on your system and so erratically.

I posted the above response to this comment. I’m sorry that AnswerHub is being weird.

thx for that!

meanwhile i was able to repro the crash 100% on another machine…report submitted and its machine ID is: BA6FAE954ADBF9F8FE894485F5F2C7C4
so its not just my machine…

Hmm, since it seems to be machine specific, could you post the Dxdiag (system specs) for both machine 1 and 2? Maybe there is something hardware/driver related.

tbh, it would be very surprising if it would be something hardware/driver specific, as the two machines are very different: one being a desktop and the other a laptop…but here you go:
link text
link text

will try on another machine later.

/edit: no idea why the desktop uploaded twice…its the same file really :slight_smile:

alright, tried to repro it on a third machine, and of course there its NOT crashing…the only similarity between my machines and difference to the third one i can see right now is the amount of system memory: my machines having 8gb, the other one 16. but im pretty sure that blueprint does not exceed 8gb when compiling… :slight_smile:

one other thing i observed: when opening the project from the zip the first time, it asks to restore the last opened blueprints. if i click “no” there, it doesnt crash anywhere. only if i click “restore” i consistently get the crash…maybe you could try that; even though that didnt make it crash on the third machine either…

well, i’ve got a workaround for it, so its not a blocker for me at least. so if you dont have any other idea what i could provide (apart from sending my machine over ^^); i think you can close this as KS…thx for your patience and afforts!

That did it! Thanks for all the back and forth to help get this repro. :slight_smile:

I’ve reopened the JIRA with your test project attached and new repro steps. We will post here with updates as we have them.

Hi Ollinator,

I just wanted to let you know that this has been fixed as of 4.9 Preview 2. However, I suggest not converting your project until the official 4.9 release.

Cheers,

TJ

cool stuff, thx for that! :slight_smile:

could someone take a look at my other 2 spline questions? they were moved out of bugreports, but im not sure if its really intended behaviour…

cheers!