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
1. Create a project that uses Disregard GC
2. Add a bad path to GameplayTagTableList
3. Cook, then launch debugger as Development Server
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-220628 in the post.
0 |
Component | UE - Foundation - Core - UObject |
---|---|
Affects Versions | 5.4.3 |
Target Fix | 5.6 |
Created | Jul 31, 2024 |
---|---|
Updated | Oct 18, 2024 |