Access Violation in CLBCATQ!CSimpleTableDispenser Object (320231)



The information in this article applies to:

  • Microsoft COM+ 1.0, when used with:
    • the operating system: Microsoft Windows 2000

This article was previously published under Q320231

SYMPTOMS

During a stress test in which instances of COM+ components are created in a tight loop, you may notice an access violation in the CLBCATQ!CSimpleTableDispenser object with the following call stack:

4f81d3fc 775e1ada CLBCATQ!CSimpleTableDispenser__~CSimpleTableDispenser+0x28 
4f81d418 775b7bb8 CLBCATQ!StdispGetClassObject+0xca
4f81d430 775e8613 CLBCATQ!DllGetClassObject+0x28
4f81d478 775e7384 CLBCATQ!CSimpleTable__RetainQuery+0x6b 
4f81d4b0 775e5bf7 CLBCATQ!CCLBDTDispenser__GetTable+0x45c
4f81d564 775e300a CLBCATQ!CSimpleTableDispenser__GetClientOrServerTable+0x30f
4f81d58c 775f1e10 CLBCATQ!CSimpleTableDispenser__GetServerTable+0x84
4f81d5f4 775e5dd9 CLBCATQ!CSLTComs__GetTable+0x1130
4f81d6a8 775e300a CLBCATQ!CSimpleTableDispenser__GetClientOrServerTable+0x4f1
4f81d6d0 775b9363 CLBCATQ!CSimpleTableDispenser__GetServerTable+0x84
4f81d850 775b83ff CLBCATQ!CComClass__Init+0x205
4f81d878 77a52610 CLBCATQ!CComCLBCatalog__GetClassInfoW+0xbf
77b339f8 00000026 ole32!CComCatalog__GetClassInfoW+0xd8
					

CAUSE

If the SimpleTableDispenser object does not initialize, the object's member (the pointer to the wiring table) is NULL. The access violation occurs when the object's destructor tries to release the reference to the wiring table.

RESOLUTION

To resolve this problem, obtain Microsoft COM+ Hotfix Rollup 17. For additional information, click the article number below to view the article in the Microsoft Knowledge Base:

311158 INFO: Availability of Windows 2000 Post-Service Pack 2 COM+ Hotfix Rollup Package 17

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


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 3.

MORE INFORMATION

The fix is to look for NULL before releasing the reference to the wiring table.

For additional information about how to obtain a hotfix for Windows 2000 Datacenter Server, click the article number below to view the article in the Microsoft Knowledge Base:

265173 The Datacenter Program and Windows 2000 Datacenter Server Product

For additional information about how to install multiple hotfixes with only one reboot, click the article number below to view the article in the Microsoft Knowledge Base:

296861 Use QChain.exe to Install Multiple Hotfixes with One Reboot


Modification Type:MajorLast Reviewed:6/5/2003
Keywords:kbbug kbfix kbWin2000PreSP3Fix kbWin2000sp3fix KB320231