OFF97: DAO/Jet : Race Condition Causes Hang on Multiprocessor with Recordset (244799)



The information in this article applies to:

  • Microsoft Office 97 for Windows
  • Microsoft Visual Studio, Enterprise Edition 6.0, when used with:
    • the operating system: Microsoft Windows NT 4.0

This article was previously published under Q244799

SYMPTOMS

When executing on a multiprocessor system, using Data Access Objects (DAO) or JET methods to retrieve or update recordsets and Querydefs can produce a hang condition in the application.

CAUSE

There is a race condition that can occur on a multiprocessor system when more than one thread is accessing a file at the same time. This bug has been identified within the NT kernel. Under the correct circumstances, when two threads attempt to use a file simultaneously, the thread closing the file can potentially be pre-empted. Because the final cleanup on the file is not performed, all the threads attempting to access the file enter into a wait state from which they do not return.

RESOLUTION

This issue has been addressed in a Microsoft Windows NT 4.0 hotfix. For directions on how to obtain this hotfix, see the following Knowledge Base article:

246467: RAS Server Stops Responding to New PPP Connection Requests

STATUS

Microsoft has confirmed that this is a problem in Windows NT 4.0.

Modification Type:MinorLast Reviewed:9/23/2005
Keywords:kbHotfixServer kbQFE kbfix kbprb KB244799