Alex Ionescu wrote:
Hi,
Can you try KDBG=1 and do a "bt" please? This should show a stack trace. Also, is this the SMP build?
It is a smp build. I'm not able to install a build with KDBG=1. It does always crash at the end of the second stage setup. I've created a backtrace by adding KeRosDumpStackFrames. It is rev 20554 with a highly modified hal and kernel during the processor/apic initialization.
- Hartmut
(./ntoskrnl/ke/wait.c:724 CPU0) KiAbortWaitThread: 818f75e8, Status: 102, 818f7690 Frames: <ntoskrnl.exe:95f9 (./ntoskrnl/ke/wait.c:725 (KiAbortWaitThread))> <ntoskrnl.exe:955e (./ntoskrnl/ke/wait.c:701 (KiWaitTest))> <ntoskrnl.exe:841e (./ntoskrnl/ke/timer.c:307 (KiHandleExpiredTimer))> <ntoskrnl.exe:83d1 (./ntoskrnl/ke/timer.c:273 (KiExpireTimers))> <ntoskrnl.exe:334f (./ntoskrnl/ke/dpc.c:554 (KiDispatchInterrupt))> <80507204> hal/halx86/mp/mpsirql.c:93, HalpLowerIrql <8050767D> hal/halx86/mp/mpsirql.c:337, HalEndSystemInterrupt <80504419> hal/halx86/mp/apic.c:820, MpsTimerHandler <80506F6F> hal\halx86\mp\mps.S:85, MpsTimerInterrupt <ntoskrnl.exe:8d93f (./ntoskrnl/ps/thread.c:90 (PspSystemThreadStartup))> Assertion (Thread->State == Waiting) == (Thread->WaitBlockList != NULL) failed at ./ntoskrnl/ke/wait.c:727 for CPU0 KeBugCheckWithTf at ntoskrnl\ke\i386\exp.c:1242
M:\Sandbox\ros_work\reactos>svn diff ntoskrnl\ke\wait.c Index: ntoskrnl/ke/wait.c =================================================================== --- ntoskrnl/ke/wait.c (Revision 20554) +++ ntoskrnl/ke/wait.c (Arbeitskopie) @@ -719,6 +719,11 @@
/* If we are blocked, we must be waiting on something also */ DPRINT("KiAbortWaitThread: %x, Status: %x, %x \n", Thread, WaitStatus, Thread->WaitBlockList); + if (!((Thread->State == Waiting) == (Thread->WaitBlockList != NULL))) + { + DPRINT1("KiAbortWaitThread: %x, Status: %x, %x \n", Thread, WaitStatus, Thread->WaitBlockList); + KeRosDumpStackFrames(NULL, 10); + } ASSERT((Thread->State == Waiting) == (Thread->WaitBlockList != NULL));
/* Remove the Wait Blocks from the list */