Skip to content

GC Deadlock: IL2CPP threads blocked on SuspendSemaphore/work semaphores (Arcade Game Zone) #254

Description

@jackby03

Symptoms

  • Game: Arcade Game Zone (PPSA19015) - Unity/IL2CPP
  • 13 AssetGarbageCollectorHelper threads blocked on sceKernelWaitSema (work semaphores)
  • 1 coordinator thread blocked on sceKernelWaitSema (SuspendSemaphore)
  • Main thread blocked on handshake semaphore
  • Stall detected after 20s, exit code 4

Log evidence

[LOADER][ERROR] Stall import-stub: rip=0x00006FFFFD000EE0 nid=Zxa0VhQVTsk -> libKernel:sceKernelWaitSema
[LOADER][ERROR] Stall guest-thread: handle=0x00000207AC514E50 name='AssetGarbageCollectorHelper' state=Blocked imports=24 nid=Zxa0VhQVTsk block=sceKernelWaitSema
[LOADER][ERROR] Stall guest-thread: handle=0x00000207AB5CD9A0 name='Thread-207AB5CD9A0' state=Blocked imports=38 nid=Zxa0VhQVTsk rdi=0x0000000000000083 block=sceKernelWaitSema
[LOADER][ERROR] Stall main-thread: managed_id=2 state=Blocked block=sceKernelWaitSema:0x00000081:Baselib_SystemSemaphore

Analysis

Circular deadlock in IL2CPP GC suspension: coordinator waits for workers to signal SuspendSemaphore, but workers wait for coordinator to signal work semaphores. No progress possible.

Possible causes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions