FIX: MSMQ Causes an Access Violation on Fast Multiple Processor Computers (274753)



The information in this article applies to:

  • Microsoft Message Queuing 2.0

This article was previously published under Q274753

SYMPTOMS

The Microsoft Message Queuing (MSMQ) Service may cause an access violation. When the correct symbol set is used, a stack similar to the following occurs:

Scheduler::Wakeup(Scheduler * const 0x00000000, __int64 125902015235310796) line 250 + 22 bytes
Scheduler::ProcessScheduledEvents(Scheduler * const 0x00000000) line 335
Scheduler::SchedulerThread(void * 0x0050b550) line 193
					

CAUSE

The scheduler wakeup list is being corrupted by a race condition that is exposed on fast multiple processor computers. The problem occurs because of an attempt to insert an additional timer object into the scheduler when one already exists.

RESOLUTION


A supported fix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Apply it only to computers that are experiencing this specific problem. This fix may receive additional testing. Therefore, if you are not severely affected by this problem, Microsoft recommends that you wait for the next Windows 2000 service pack that contains this hotfix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The typical support costs will apply to additional support questions and issues that do not qualify for the specific update in question.


The English version of this fix should have the following file attributes or later:

Date        Time     Version   Size     File name       Platform
----------------------------------------------------------------
8/26/2000   8:56a        710   284,672  Mq1repl.dll          x86
8/26/2000   8:56a        710   219,136  Mqads.dll            x86
8/15/2000   3:23a        710    69,904  Mqcert.dll           x86
8/26/2000   8:56a        710    30,208  Mqcertui.dll         x86
8/26/2000   8:56a        710    50,688  Mqclus.dll           x86
8/26/2000   8:56a        710    31,744  Mqdbodbc.dll         x86
8/26/2000   8:56a        710    77,312  Mqdscli.dll          x86
8/26/2000   8:56a        710    43,008  Mqdssrv.dll          x86
8/15/2000   3:24a        710    69,904  Mqkeyhlp.dll         x86
8/26/2000   8:56a        710   268,288  Mqmigrat.dll         x86
8/26/2000   8:56a        710   232,448  Mqoa.dll             x86
8/26/2000   8:56a        710     8,704  Mqperf.dll           x86
8/26/2000   8:56a        710   431,616  Mqqm.dll             x86
8/26/2000   8:56a        710     9,216  Mqrperf.dll          x86
8/26/2000   8:56a        710    94,208  Mqrt.dll             x86
8/26/2000   8:56a        710    71,680  Mqsec.dll            x86
8/26/2000   8:56a        710   428,032  Mqsnap.dll           x86
8/26/2000   8:56a        710   110,592  Mqutil.dll           x86
8/26/2000   8:56a        710    68,608  Msmq.cpl             x86
					



STATUS

Microsoft has confirmed that this is a problem in MSMQ 2.0.

MORE INFORMATION

When multiple worker threads are flushing messages, only one timer object should be active at a time.

Modification Type:MinorLast Reviewed:10/7/2005
Keywords:kbbug kbfix KB274753