Ticket #525 (closed defect: fixed)

Opened 3 years ago

Last modified 13 months ago

ApicIds deadlock

Reported by: Philip Owned by:
Priority: Must Have Milestone: Alpha 1
Component: Core engine Keywords:
Cc: jan

Description

See call stack (from Brian), particularly:

        pyrogenesis_dbg.exe!_ia32_asm_CAS()  + 0x10 bytes       
>       pyrogenesis_dbg.exe!ModuleInit(volatile int * initState=0x00c55a7c, long (void)* init=0x004b4ff0)  Line 44 + 0x10 bytes C++
        pyrogenesis_dbg.exe!ApicIds()  Line 172 + 0xf bytes     C++
        pyrogenesis_dbg.exe!VerifyRunningOnCorrectProcessors(unsigned long affinity=1)  Line 252 + 0x5 bytes    C++
        pyrogenesis_dbg.exe!os_cpu_SetThreadAffinityMask(unsigned int processorMask=1)  Line 275 + 0x9 bytes    C++
        pyrogenesis_dbg.exe!os_cpu_CallByEachCPU(void (unsigned int, unsigned int)* cb=0x00414380, unsigned int cbData=12933656)  Line 293 + 0xb bytes  C++
        pyrogenesis_dbg.exe!InitApicIds()  Line 160 + 0xf bytes C++
        pyrogenesis_dbg.exe!ModuleInit(volatile int * initState=0x00c55a7c, long (void)* init=0x004b4ff0)  Line 46 + 0x5 bytes  C++
        pyrogenesis_dbg.exe!ApicIds()  Line 172 + 0xf bytes     C++

The first ModuleInit call locks the state while calling init() which then tries to lock the state itself.

Change History

comment:1 Changed 3 years ago by jan

  • Status changed from new to closed
  • Resolution set to fixed

(In [7852]) fix deadlock in pre-XP SP2 windows codepath fixes #525

comment:2 Changed 3 years ago by philip

(In [7853]) Fix #525 more, so it doesn't use an uninitialised variable

comment:3 Changed 3 years ago by anonymous

  • Milestone Unclassified deleted

Milestone Unclassified deleted

comment:4 Changed 13 months ago by historic_bruno

  • Milestone set to Alpha 1
Note: See TracTickets for help on using tickets.