Runtime PCG doing GC during world tick

We have a runtime graph generating ground foliage in a large world, intermittently we are running into an assert in the garbage collector - we are hitting the below assert in FLevelStreamingGCHelper::PrepareStreamedOutLevelForGC. FPCGGraphExecutor::ExecuteV2 is invoking GC through ExecuteTasksEnded, and is itself called through UPCGSubsystem::Tick as per the callstack. We can get around this by disabling pcg.Cache.EnableMemoryBudget but that doesn’t seem like it should be a requirement. Should GC happen during the world tick in this case, and if so are we doing something else wrong? the package that gets GC:ed varies but has so far been some form of /Game/Maps/MapName/_Generated_/XXXXXXXXXXXXXXXX

// This can never ever be called during tick; same goes for GC in general. check(!World->bInTick);

Steps to Reproduce
This happens intermittently in our World-partitioned level where we have runtime PCG generation for ground foliage

Hi Erica,

We have most likely fixed that issue like in 5.5.4 - I’ll link you the git hash if you want to cherry pick it.

3bc09e9f97d05438d9cb54c5da6cd5b7fa043a71

Hope this helps,

Cheers,

Julien

Looks like it, yes. Thanks!