KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q150355: Windows NT Nonresponsive during NTFS Directory Traversal

Article: Q150355
Product(s): Microsoft Windows NT
Version(s): 3.51,4.0
Operating System(s): 
Keyword(s): kbnetwork
Last Modified: 09-AUG-2002

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Windows NT Workstation versions 3.51, 4.0 
- Microsoft Windows NT Server versions 3.51, 4.0 
-------------------------------------------------------------------------------


IMPORTANT: This article contains information about editing the registry.
Before you edit the registry, make sure you understand how to restore it if
a problem occurs. For information on how to do this, view the "Restoring
the Registry" online Help topic in Regedit.exe or the "Restoring a Registry
Key" online Help topic in Regedt32.exe.

SYMPTOMS
========

When you initiate a programmatic traversal of a large Windows NT file system
(NTFS) directory tree (for example, Ntbackup:\*.* or Dir/s\*.xyz), Windows NT is
nonresponsive and network connections may time out, resulting in client
disconnections.

This problem has been widely observed on large Services for Macintosh (SFM)
volumes. Macintosh clients may pause or stop responding (hang) for several
minutes when they select a SFM volume in the Chooser.

CAUSE
=====

Because the Windows NT circular log file is full and waiting to be flushed to
the hard disk, it prevents responsive execution of the directory traversal.

Assume a directory structure consisting of a large number of small directories
(around 70,000). A directory tree traversal (Dir /s \*.xyz) visits each
directory to do an enumeration, requiring an open of the directory to obtain the
handle. Each time the last handle for a directory is closed, NTFS will update
the LastAccess time stamp on the directory. This operation requires a write of a
log record to the circular log file as well as the meta data in memory.

Normally, the NTFS circular log file never fills up. The Cache Manager's Lazy
Writer flushes both the log file and meta data out to the hard disk
periodically. The system stops responding when the log file is full, making it
critical to flush data to the hard disk to make space available. This blocks
other operations on NTFS during the flush.

RESOLUTION
==========

NOTE: If you have a computer running Windows NT 3.51, please apply the latest
service pack for Windows NT version 3.51 and then follow the Registry Editor
steps below. If you have a computer running Windows NT version 4.0, please
follow only the Registry Editor steps below.

To correct this problem, follow the appropriate steps below:

Windows NT 4.0
--------------

Make the registry change mentioned below.

Windows NT 3.51
---------------

Obtain the latest Windows NT 3.51 Service Pack and make the registry change
below.

WARNING: Using Registry Editor incorrectly can cause serious problems that may
require you to reinstall your operating system. Microsoft cannot guarantee that
problems resulting from the incorrect use of Registry Editor can be solved. Use
Registry Editor at your own risk.

For information about how to edit the registry, view the "Changing Keys And
Values" online Help topic in Registry Editor (Regedit.exe) or the "Add and
Delete Information in the Registry" and "Edit Registry Data" online Help topics
in Regedt32.exe. Note that you should back up the registry before you edit it.

1. Start Registry Editor (Regedt32.exe) and go to the following subkey:

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

2. On the Edit menu, click Add Value, and edit the following entry.

  Value Name: NtfsDisableLastAccessUpdate
  Data Type : REG_DWORD
  Data : 1

3. Quit Registry Editor and restart your computer.

A modification was also made to the kernel that makes the CacheManager flush NTFS
log file and meta data to disk more aggressively.


STATUS
======

Microsoft has confirmed this to be a problem in Microsoft Windows NT version
3.51. This problem was corrected in the latest Windows NT 3.51 U.S. Service
Pack. For information on obtaining the Service Pack, query on the following word
in the Microsoft Knowledge Base (without the spaces):

  S E R V P A C K


Additional query words: nonresponsive pausing hanging hangs locks up lock buffers buffered indexing index result results mac macfile freeze explorer disable

======================================================================
Keywords          : kbnetwork 
Technology        : kbWinNTsearch kbWinNTWsearch kbWinNTW400 kbWinNTW400search kbWinNT351search kbWinNT400search kbWinNTW351search kbWinNTW351 kbWinNTSsearch kbWinNTS400search kbWinNTS400 kbWinNTS351 kbWinNTS351search
Version           : :3.51,4.0
Issue type        : kbbug
Solution Type     : kbfix

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.