Windows NT Nonresponsive during NTFS Directory Traversal (150355)
The information in this article applies to:
- Microsoft Windows NT Workstation 3.51
- Microsoft Windows NT Workstation 4.0
- Microsoft Windows NT Server 3.51
- Microsoft Windows NT Server 4.0
This article was previously published under Q150355 NTbug:13475NTbug:10721Important This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base: 256986 Description of the Microsoft Windows Registry 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 If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. 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.
- Start Registry Editor (Regedt32.exe) and go to the following subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem - On the Edit menu, click Add Value, and edit the following entry.
Value Name: NtfsDisableLastAccessUpdate
Data Type : REG_DWORD
Data : 1
- 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 that this is 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):
Modification Type: | Minor | Last Reviewed: | 8/6/2004 |
---|
Keywords: | kbbug kbfix kbnetwork KB150355 |
---|
|