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

ID: Q244799


The information in this article applies to:
  • Microsoft Office 97 for Windows
  • Microsoft Visual Studio 6.0
    on the following platforms: WINDOWS


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 post Windows NT Service Pack Five hotfix. For directions on how to obtain this hotfix, see the following Knowledge Base article:

Q246467: RAS Server Stops Responding to New PPP Connection Requests


STATUS

Microsoft has confirmed this to be a problem in Windows NT 4.0.

Additional query words:

Keywords : kbdta
Version : WINDOWS:6.0,97
Platform : WINDOWS
Issue type : kbprb


Last Reviewed: January 10, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.