Microsoft KB Archive/260360

= FIX: Virtual Machine May Cause a Deadlock =

Article ID: 260360

Article Last Modified on 6/14/2006

-

APPLIES TO


 * Microsoft Java Virtual Machine

-



This article was previously published under Q260360



SYMPTOMS
If you take a user dump when the process seems to be in a blocked state and you examine the dump, you will see threads with call stacks similar to the following:

Thread 1: NTDLL!ZwWaitForMultipleObjects+0xb KERNEL32!WaitForMultipleObjectsEx+0xef MSJAVA!Debugger::DebuggerWait+0x177 MSJAVA!CMCSafeLock::Wait+0x41 MSJAVA!?EnterMP@CMCSafeLock@@AAEXXZ+0x2c(...) MSJAVA!?EnterObjectCCWLock@@YG MSJAVA!?Release@CCW@@UAGKXZ MTXEX!CContext::Unbind+0x538 MTXEX!CContext::ReleaseAll+0x50 MTXEX!ContextWrapper::Release+0xad MSJAVA!?RemoteReleaseCallback@@YGJPAUtagComCallData@@@Z MSJAVA!?ContextCallback@CEmulatedContextCallback@@UAGJP6GJPAUtagCoa@@@Z0ABU_GUID@@HPAUIUnknown@@@Z MSJAVA!?RemoteRelease@@YGXPAUIUnknown@@PAUIContextCallback@@H@Z MSJAVA!?ReleaseAll@CDeadPunkList@@QAEXXZ MSJAVA!?LeaveMCWorker@CJavaThreadBlock@@QAEXXZ MSJAVA!?LeaveMC@CJavaThreadBlock@@QAEJXZ MSJAVA!?EnterMCWorker@CJavaThreadBlock@@QAE?AW4cmcsafelock_state@@feLock@@H@Z MSJAVA!?EnterMC@CJavaThreadBlock@@QAEJXZ MSJAVA!?Release@CCW@@UAGKXZ MSJAVA!?RemoteReleaseCallback@@YGJPAUtagComCallData@@@Z MSJAVA!?ContextCallback@CEmulatedContextCallback@@UAGJP6GJPAUtagCoa@@@Z0ABU_GUID@@HPAUIUnknown@@@Z MSJAVA!?RemoteReleaseCallback@@YGJPAUtagComCallData@@@Z Thread 2: NTDLL!ZwWaitForMultipleObjects+0xb KERNEL32!WaitForMultipleObjectsEx+0xef MSJAVA!Debugger::DebuggerWait+0x177 MSJAVA!CMCSafeLock::Wait+0x41 MSJAVA!?EnterMP@CMCSafeLock@@AAEXXZ+0x2c(...) MSJAVA!EnterObjectCCWLock+0xd MSJAVA!CCW::Release+0x11 MSJAVA!RemoteReleaseCallback+0xd MSJAVA!CEmulatedContextCallback::ContextCallback+0x52 MSJAVA!RemoteRelease+0xa5 MSJAVA!CDeadPunkList::ReleaseAll+0x61 MSJAVA!CJavaThreadBlock::LeaveMCWorker+0x39 MSJAVA!CJavaThreadBlock::LeaveMC+0x1a MSJAVA!CJavaThreadBlock::EnterMCWorker+0x26 MSJAVA!CJavaThreadBlock::EnterMC+0x2c MSJAVA!CCW::Release+0x65 MTXEX!CContext::Unbind+0x538



CAUSE
This is due to a bug in the Microsoft virtual machine (Microsoft VM) that has to do with the way different threads enter a class lock.



RESOLUTION
To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

260910 How to Obtain the Latest Windows 2000 Service Pack

To resolve this problem, update your version of the Microsoft VM to build 3194 or later. See the &quot;References&quot; section of this article for a link to download the latest Microsoft VM.



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

This problem was first corrected in Windows 2000 Service Pack 1.

This problem was corrected in Microsoft VM build 3194 and later.

