ODBC32.dll file causes a deadlock when loading an MFC extension DLL

Article translations Article translations
Article ID: 883715
Expand all | Collapse all

Symptoms

You have a multi-threaded application that uses the ODBC32.dll file and the ODBCCR32.dll file. When the ODBC32.dll file tries to load a Microsoft Foundation Classes (MFC) extension DLL, you notice a deadlock in the application.

Cause

The ODBC32.dll file does not use the AfxLoadLibrary function to load the ODBCCR32.dll file. By design, the ODBC32.dll file loads the ODBCCR32.dll file, and the ODBCCR32.dll file gains the NTDLL loader lock and then tries to gain the MFC global lock. This may cause a permanent deadlock in a multi-threaded application.

Resolution

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

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. This problem was first corrected in MDAC 2.8 Service Pack 1. MDAC 2.8 Service Pack 1 is included with Windows XP Service Pack 2 (SP2).

More information

According to MFC rules, an MFC extension DLL must be loaded by using the AfxLoadLibrary function. The reason for this rule is that an MFC Extension DLL makes calls to the AfxLockGlobals function internally from the dllmain function. Therefore, the core purpose of the AfxLoadLibrary function is to enforce the order of the locks to avoid deadlock situations.

References

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates
For additional information, visit the following Microsoft Developer Network (MSDN) Web sites:
Extension DLLs
http://msdn2.microsoft.com/en-us/library/h5f7ck28(vs.71).aspx
AfxLoadLibrary
http://msdn2.microsoft.com/en-us/library/zzk20sxw(vs.80).aspx

Properties

Article ID: 883715 - Last Review: June 20, 2014 - Revision: 2.0
Keywords: 
kbthread kbmdac280sp1fix kbdll kbqfe KB883715

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com