Microsoft KB Archive/244799

From BetaArchive Wiki
Knowledge Base


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

Article ID: 244799

Article Last Modified on 9/23/2005



APPLIES TO

  • Microsoft Office 97 Standard Edition
  • Microsoft Visual Studio 6.0 Enterprise Edition, when used with:
    • 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.


Additional query words: write

Keywords: kbfix kbqfe kbprb kbhotfixserver KB244799