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 */