Garbage Collection Bug 4.11

I have an advanced hierarchy of blueprints - child actors with child actors in them. probably to the 4th or 5th level.

If I change the child actor in a construction script - I get this exception 4.11 cooking failure - Programming & Scripting - Unreal Engine Forums if that new child actor has child actors within it.

when I go the child actor itself thats causing trouble and compile, I get this break point triggered

UObjectGlobals.cpp line 205 -
UE_LOG(LogUObjectGlobals, Fatal,TEXT(“Illegal call to StaticFindObject() while collecting garbage!”));

I’ve been spending 2-3 hours a day trying to isolate why my game wont cook in 4.11 - I am currently using the latest branch of 4.11 from github with this being the last checkin (787496940d5bc8735e72993f113815dfbc6bd123)

I’ve created this sample project illustrating how my blueprint hirearchy works - i was finally get this exception throw within this sample - im not 100% what makes it happen but when I quit i finally got it to throw but not during compile like in my game

(see exception)

You can also see that in this project that I am still able to produce the material visual glitches that this checkin was attempting to resolve - https://github.com/EpicGames/UnrealEngine/commit/097ce47745b78c05a8da50f0e086ddd8db0721bd

[link text][2]

We are having same issue with blueprint inside of blueprint as child actor component in 4th level. Crashing can happen randomly for example modifying value of a node in one of the blueprints. Or after that while launching in editor. Our project was converted from previous version to 4.11 and we have been converting since 4.8 without issues like this. I have been trying to figure out if some assets have been corrupted but it could be this issue has something to do with garbage collection update that allows engine handle objects as clusters.

I don’t think they are corrupted - this is just a optimization that doesnt account for all edge cases.

my test for isolating the issue is to delete all of my maps, then make a single map and drag objects on to the map and cook. if it doesnt cook than the object on the map is the problem.

objects with lots of children cause the issue - if i only drag the children in, it works fine. i havent yet tested rewriting the parent object but honestly ive burned so much time on this i think im going to just paint my basement and wait for this to sort itself out.

when i went from 4.7 to 4.8 i corrupted blueprints, and it doesnt present like this, it would mean the map/editor wouldnt open at all

Yeah, It seems that problem is somehow related to deep hierarchies and garbage collector. We have one blueprint that spawns and uses copies of itself, kind of working same time as util-class for the copies. This is added to the main hierarchy as child actor in editor.

By deleting these blueprints from the blueprint hierarchy, I significantly decreased the amount of crashing. So either the amount of blueprints in whole hierarchy or just unintended/tested way of using them.

I will try replicate this also with clean project.

This is how I replicate it:

  1. Created clean project.
  2. Added blueprints: MainActor, ChildActor1, ChildActor2, ChildActor3.
  3. Added CA1 as child component of MainActor.
  4. Added CA2 as child component CA1.
  5. Added CA3 as child component CA2.
  6. Then drop the MainActor to the game level.
  7. Add cube mesh to MainActor and after that sphere mesh to CA1 - BOOOM.

Restarted the project and the added sphere was inside the blueprint and everything seems fine. Added more meshes to CA3 and CA2; everything is fine. Until realise that I did not load the level where i created the MainActor, try load it BOOOM - Illegal call to StaticFindObject() while collecting garbage!