Opened 14 years ago

Closed 14 years ago

Last modified 12 years ago

#525 closed defect (fixed)

ApicIds deadlock

Reported by: Philip Taylor Owned by:
Priority: Must Have Milestone: Alpha 1
Component: Core engine Keywords:
Cc: Jan Wassenberg Patch:

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 (4)

comment:1 by Jan Wassenberg, 14 years ago

Resolution: fixed
Status: newclosed

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

comment:2 by philip, 14 years ago

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

comment:3 by (none), 14 years ago

Milestone: Unclassified

Milestone Unclassified deleted

comment:4 by historic_bruno, 12 years ago

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