ODBC32.dll file causes a deadlock when loading an MFC extension DLL (883715)
The information in this article applies to:
- Microsoft Data Access Components 2.8, when used with:
- the operating system: Microsoft Windows XP
SYMPTOMSYou 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.CAUSEThe 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
STATUSMicrosoft 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 INFORMATIONAccording 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:
Modification Type: | Major | Last Reviewed: | 8/24/2004 |
---|
Keywords: | kbThread kbMDAC280sp1fix kbDLL kbQFE KB883715 kbAudDeveloper |
---|
|