Description

Disabling Disregard for GC leads to a crash in GarbageCollectionVerification.cpp VerifyObjectFlags. This crash occurs when there is an invalid path specified in GameplayTagTableList.

The cause of this issue appears to be that the Reachable flag is given to the object that failed to load in GarbageCollection.cpp OnDisregardForGCSetDisabled. Before the GC pass occurs, the value of Reachable is swapped with MaybeUnreachable in GarbageCollection.cpp FRealtimeGC::MarkObjectsAsUnreachable.

During GarbageCollectionVerification.cpp's VerifyObjectFlags, the object flags are checked, but the flags do not appear to be updated on the object, so the object fails the check and triggers a fatal log.

Git Commit: 7ba7e260a528ffbab6d0157890f8ecbe363925f4

Steps to Reproduce

1. Create a project that uses Disregard GC
2. Add a bad path to GameplayTagTableList
3. Cook, then launch debugger as Development Server

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Foundation - Core - UObject
Affects Versions5.4.3
Target Fix5.5
CreatedJul 31, 2024
UpdatedAug 9, 2024
View Jira Issue