[ros-bugs] [Bug 3360] Threads deadlock when handling pagefaults.
ReactOS.Bugzilla at www.reactos.org
ReactOS.Bugzilla at www.reactos.org
Sun Jun 15 07:05:12 CEST 2008
http://www.reactos.org/bugzilla/show_bug.cgi?id=3360
bugboy <martinmnet at hotmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |critical
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Platform|QEmu |VirtualBox
--- Comment #1 from bugboy <martinmnet at hotmail.com> 2008-06-15 07:05:12 CET ---
Custom debugging.
(ntoskrnl/mm/mm.c:230) PushLock is locked for Address Thread 816CA1A0 will
enter waitstate
(ntoskrnl/ex/pushlock.c:596) calling GateWait 816B5550
(ntoskrnl/mm/mm.c:230) PushLock is locked for Address Thread 816CEB58 will
enter waitstate
(ntoskrnl/ex/pushlock.c:596) calling GateWait 816B5550
(subsystems/win32/win32k/ntuser/timer.c:157) Unable to locate timer in message
queue
(subsystems/win32/win32k/ntuser/timer.c:92) Invalid window handle
(subsystems/win32/win32k/ntuser/message.c:1207) Attempted to post message to
window 0x500e6 that is being destroyed!
(ntoskrnl/ke/apc.c:216) Not yet supported -- Report this to Alex
This is the cause of threads hanging entering a gatewait that causes
the unimplemented "report to alex".
A Thread, Thread 1 for example
causes a pagefault, usually during apcinit for the thread.
If we are inline with what Windows Internals 4ht Edition says the page fault
handing routine executes in that thread (thread 1)
the page fault handling gets to MmNotPresentFault
where a pushlock is obtained by calling MmLockAddressSpace(AddressSpace).
The problem is when handling of the page fault causes another page fault to
occur.
Another call is made to MmLockAddressSpace(AddressSpace)
Since the lock is already obtained the thread goes into a gatewait
waiting for the pushlock to be unlocked that was set in the first page fault.
Thread is no DeadLocked.
--
Configure bugmail: http://www.reactos.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the Ros-bugs
mailing list