(4.7) Crash when Garbage Collection works (Blueprint, Replicate, Inheritance)

My team makes Multiplaying TPS Game.
We use Unreal 4.7 Preview 3 (Because 4.6 has more crash problems… T.T)

We use only “Blueprint” (Not C++ Codes)
We organized the architecture with blueprint like below.

  1. Parent Class is “BP_BaseCharacter”. It has common variables and functions with Replication. This class is inherited from “Character”

  2. “BP_BaseCharacter” has a Interface.

  3. Sub-Classes (inherited from BP_BaseCharacter) are “BP_Character_Swordman”, “BP_Character_Sniper”, “BP_Character_Assault”, “BP_Character_Engineer”.

Crash is occurred when garbage collection working (60Seconds or run the GarbageCollection force)

There are a varity of types crash log. (But all logs are occurred on Garbage Collection)

Crash 1)
[2015.02.03-09.10.34:957][116]LogThreadingWindows:Error: Runnable thread TaskGraphThread 0 crashed.
[2015.02.03-09.10.34:957][116]LogWindows: === Critical error: ===
Fatal error!

Crash in runnable thread TaskGraphThread 0

[2015.02.03-09.10.35:034][116]LogExit: Executing StaticShutdownAfterError
[2015.02.03-09.10.35:034][116]LogWindows:Error: Error reentered: Runnable thread TaskGraphThread 0 crashed.
[2015.02.03-09.10.35:034][116]LogWindows:Error: HandleError re-entered.
[2015.02.03-09.10.35:034][116]LogWindows: FPlatformMisc::RequestExit(1)

Crash 2)
[2015.02.03-09.10.49:591][225]LogUObjectBase:Error: ‘this’ pointer is misaligned.
[2015.02.03-09.10.49:592][225]LogWindows:Error: Windows GetLastError: 핸들이 잘못되었습니다. (6)
[2015.02.03-09.10.49:592][225]LogUObjectBase:Error: Object flags are invalid or either Class or Outer is misaligned
[2015.02.03-09.10.49:611][225]LogWindows:Error: Error reentered: Invalid object in GC: 0x0000003300000000, ReferencingObject: BP_Character_Swordman_C /Game/Blueprints/Characters/Swordman/BP_Character_Swordman.Default__BP_Character_Swordman_C, ReferencingProperty: ObjectProperty /Game/Blueprints/Characters/Base/BP_BaseCharacter.BP_BaseCharacter_C:ExecuteUbergraph_BP_BaseCharacter.CallFunc_GetPlayerController_ReturnValue
[2015.02.03-09.10.49:611][225]LogThreadingWindows:Error: Runnable thread TaskGraphThread 0 crashed.
[2015.02.03-09.10.49:611][225]LogWindows: === Critical error: ===
Fatal error: [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.7\Engine\Source\Runtime\CoreUObject\Private\UObject\GarbageCollection.cpp] [Line: 273]
Invalid object in GC: 0x0000003300000000, ReferencingObject: BP_Character_Swordman_C /Game/Blueprints/Characters/Swordman/BP_Character_Swordman.Default__BP_Character_Swordman_C, ReferencingProperty: ObjectProperty /Game/Blueprints/Characters/Base/BP_BaseCharacter.BP_BaseCharacter_C:ExecuteUbergraph_BP_BaseCharacter.CallFunc_GetPlayerController_ReturnValue

Crash in runnable thread TaskGraphThread 0

[2015.02.03-09.10.49:683][225]LogExit: Executing StaticShutdownAfterError
[2015.02.03-09.10.49:683][225]LogWindows:Error: Error reentered: Runnable thread TaskGraphThread 0 crashed.
[2015.02.03-09.10.49:683][225]LogWindows:Error: HandleError re-entered.
[2015.02.03-09.10.49:683][225]LogWindows: FPlatformMisc::RequestExit(1)
[2015.02.03-09.10.49:683][225]Log file closed, 02/03/15 18:10:49

(Sorry. Log is written by Korean)

Crash 3) : Dump File (It is common Error Code for all crashes)

“0xC0000005”

덤프 요약

덤프 파일: Dump2112116784.dmp : C:\Users\AnyMk2\AppData\Local\Microsoft\Windows\WER\ReportQueue\AppCrash_UE4-CND_4Hunter_dc192fe07da7ab3e57a36c842e2473adbd5577b_00000000_cab_2fb18280\Dump2112116784.dmp
마지막으로 쓴 시간: 2015-02-03 오후 4:38:09
프로세스 이름: CND_4Hunter.exe : D:\AnyRaiN_Work\CatDog_4Hunter\trunk\Bin\4HunterBin\WindowsNoEditor\CND_4Hunter\Binaries\Win64\CND_4Hunter.exe
프로세스 아키텍처: x64
예외 코드: 0xC0000005
예외 정보: 스레드가 적절한 액세스 권한이 없는 가상 주소에서 읽거나 해당 가상 주소에 쓰려고 했습니다.
힙 정보: 없음

시스템 정보

OS 버전: 6.3.9600
CLR 버전:


Our Team tests many cases about this crash.

As a result, We find out the fact like below

  • BP_BaseCharacter has something wrong.

  • The Interface, inherited to BP_BaseCharacter, is also wrong. When we removed this interface (+ohter codes), Crash is solved, otherwise, when we removed the only codes without deleting interface, Crash also occurred.

  • Even if “BP_BaseCharacter” is not spawned, but just written in codes, “Crash is also occurred!!!”. (More over, That node related with “BP_BaseCharacter” is not run!!! (??? It is very strange problem…)

We want to know that,
“Why garbage collection crash is occurred in “BLUEPRINT””,
and “How to solve this problem with only Blueprint”. We don’t have a lot of time.

Hey AnyRaiN-

There are a few questions I have that will help me investigate the crash errors you are reporting.

Do any of the reported crashes occur when you only have the BP_BaseCharacter and not using the sub-classes?

Does the crash happen if you use “Cast” nodes rather than an interface for the BP_BaseCharacter?

Does the crash occur in a new empty project with the created class and sub-classes?

Do you still get the crash on the latest 4.7 preview 5?

Thank your Reply.
I tested cases about your request.

  1. Do any of the reported crashes occur when you only have the BP_BaseCharacter and not using the sub-classes?
    : Always Crash whenever nodes aboute BP_BaseCharacter or other sub-class are existed. (Just Exist, not only run)

  2. Does the crash happen if you use “Cast” nodes rather than an interface for the BP_BaseCharacter?
    : I removed Interface and codes are refactored including “Casting” to each sub-class, not BaseCharacter, not Interface. But Crash is occurred…

  3. Does the crash occur in a new empty project with the created class and sub-classes?
    : I had two test.
    (1) Empty project, and new sample blueprints, including Parent (inherited by “Character”), 2 Child, and interface. Some Replication, Custom Events, and etc. There is no Crash. (Wow~!)
    (2) In That Empty Project, I migrated BP_BaseCharacter Blueprint and other related all Blueprints. Unfortunately… Crash is occurred…

  4. Do you still get the crash on the latest 4.7 preview 5?
    : Crash is occurred not only preview 3, 4, but also preview 5… T.T

Hey AnyRaiN-

It appears that the blueprints and interface you’re currently using became corrupted at some point. The simplest solution would be to recreate the blueprints in your project.

Cheers