Article ID: 970054 - View products that this article applies to.
Expand all | Collapse all

On This Page

Symptoms

A Windows Server 2003-based computer may continue to log event ID 333 in the System log every five seconds until the computer is restarted.

For example, the following Event ID 333 message my be logged in the System log:


Event Type: Error
Event Source: Application Popup
Event Category: None
Event ID: 333
Date: date
Time: time
User: N/A
Computer: computer name
Description: An I/O operation initiated by the Registry failed unrecoverably. The Registry could not read in, or write out, or flush, one of the files that contain the system's image of the Registry.

Cause

This issue may occur when the Non Paged Memory or the Paged Pool Memory is temporarily insufficient. The system keeps recording such events until the computer is restarted, or the related hive is unloaded, even though the temporary memory insufficiency stops.

Note Not all Event ID 333 errors have this cause. To identify the source of Event ID 333, use the troubleshooting process that is mentioned in the "More Information" section. You should apply this hotfix only after you complete the troubleshooting process and determine whether it is a system component or the system driver that is affected.

Resolution

A hotfix is available to resolve this issue. After you apply this hotfix and then create the corresponding registry entry, the computer records only one Event ID 333 when the temporary memory becomes insufficient. Additionally, by controlling the registry entry, you can make the system trigger a Stop error for diagnostic purposes when the memory becomes insufficient.

Hotfix information

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
http://support.microsoft.com/contactus/?ws=support
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.

Prerequisites

To apply this hotfix, you must have Windows Server 2003 Service Pack 1 or Service Pack 2 installed.

Restart requirement

You have to restart the computer after you apply this hotfix.

Registry information

To enable this hotfix, add the following registry entry, and set the value to 1 or 2.
Location: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
Name: RegistryFlushErrorSubside
Type: REG_DWORD
Value: 1 or 2

If you set the value of the RegistryFlushErrorSubside registry entry to 1, the system only records one event 333 when the temporary memory insufficiency occurs. If the value is set to 2, the system triggers a Stop error for diagnostic purposes.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Windows Server 2003 SP1, x86-based versions
Collapse this tableExpand this table
File nameFile versionFile sizeDateTimePlatformSP requirement
Ntkrnlmp.exe5.2.3790.33282,469,37617-Apr-200911:51Not ApplicableSP1
Ntkrnlpa.exe5.2.3790.33282,281,47217-Apr-200911:04x86SP1
Ntkrpamp.exe5.2.3790.33282,321,40817-Apr-200911:03Not ApplicableSP1
Ntoskrnl.exe5.2.3790.33282,427,90417-Apr-200911:49x86SP1
Windows Server 2003 SP2, x86-based versions
Collapse this tableExpand this table
File nameFile versionFile sizeDateTimePlatformSP requirement
Ntkrnlmp.exe5.2.3790.44972,498,56017-Apr-200912:28Not ApplicableSP2
Ntkrnlpa.exe5.2.3790.44972,310,14417-Apr-200911:19x86SP2
Ntkrpamp.exe5.2.3790.44972,350,59217-Apr-200916:29Not ApplicableSP2
Ntoskrnl.exe5.2.3790.44972,457,08817-Apr-200912:28x86SP2
Windows Server 2003 and Windows XP, x64-based versions
Collapse this tableExpand this table
File nameFile versionFile sizeDateTimePlatformSP requirement
Hal.dll5.2.3790.3191280,06418-Apr-200904:06x64SP1
Ntkrnlmp.exe5.2.3790.33284,655,61618-Apr-200904:06x64SP1
Ntoskrnl.exe5.2.3790.33284,509,18418-Apr-200904:06x64SP1
Windows Server 2003 SP2 and Windows XP SP2, x64-based versions
Collapse this tableExpand this table
File nameFile versionFile sizeDateTimePlatformSP requirement
Hal.dll5.2.3790.4354280,06418-Apr-200908:05x64SP2
Ntkrnlmp.exe5.2.3790.44974,612,60818-Apr-200908:05x64SP2
Ntoskrnl.exe5.2.3790.44974,540,41618-Apr-200908:05x64SP2

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More information

Sample troubleshooting process

The most common reason for failure is that the system is out of Non Paged Memory or Paged Pool Memory. Here is a sample troubleshooting process:
  1. This is the Stop error code that is generated.
    Bugcheck code 00000051
    Arguments 00000003 00000004 e12b1750 00000000
    

    Note You can determine the registry hive that is being flushed by running the !reg baseblock command with the third parameter. For example:
    kd> !reg baseblock e12b1750
    FileName : emRoot\System32\Config\SOFTWARE
    
  2. This is the stack trace that leads to the Stop error.
    1: kd> kbn
     # ChildEBP RetAddr  Args to Child              
    00 f8a3ed18 808b7d96 00000051 00000003 00000004 nt!KeBugCheckEx+0x1b
    01 f8a3ed3c 808b92bb e12b1701 82f42660 808a03c8 nt!HvSyncHive+0xd4
    02 f8a3ed58 808c29f9 00000000 e12b1a48 f8a3ed78 nt!CmpDoFlushNextHive+0xe1
    03 f8a3ed80 8087c157 00000000 00000000 82f42660 nt!CmpLazyFlushWorker+0x7f
    04 f8a3edac 80941a1a 00000000 00000000 00000000 nt!ExpWorkerThread+0xeb
    05 f8a3eddc 80889d8e 8087c06c 00000001 00000000 nt!PspSystemThreadStartup+0x2e
    06 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
    
  3. You can use the following information to confirm pool resource depletion.
    1: kd> !vm
    
    *** Virtual Memory Usage ***
    	Physical Memory:       65345 (    261380 Kb)
    	Page File: \??\C:\pagefile.sys
    	  Current:    393216 Kb  Free Space:    332368 Kb
    	  Minimum:    393216 Kb  Maximum:       786432 Kb
    	Available Pages:        9600 (     38400 Kb)
    	ResAvail Pages:        44603 (    178412 Kb)
    	Locked IO Pages:         342 (      1368 Kb)
    	Free System PTEs:      81060 (    324240 Kb)
    	Free NP PTEs:          27507 (    110028 Kb)
    	Free Special NP:           0 (         0 Kb)
    	Modified Pages:           31 (       124 Kb)
    	Modified PF Pages:        31 (       124 Kb)
    	NonPagedPool Usage:     2669 (     10676 Kb)
    	NonPagedPool Max:      30300 (    121200 Kb)
    	PagedPool 0 Usage:      1146 (      4584 Kb)
    	PagedPool 1 Usage:     11498 (     45992 Kb)
    	PagedPool 2 Usage:     11501 (     46004 Kb)
    	PagedPool 3 Usage:     11468 (     45872 Kb)
    	PagedPool 4 Usage:     11491 (     45964 Kb)
    	********** Excessive Paged Pool Usage *****
    	PagedPool Usage:       47104 (    188416 Kb)
    	PagedPool Maximum:     47104 (    188416 Kb)
    
    	********** 2509 pool allocations have failed **********
    
    
    From the output of the !vm command, we see that Paged Pool usage is excessive. Therefore, we use "4" in the !poolused command.  If Non Paged Pool usage is excessive, we would use "2".  The "/t 10" simply means to display the top 10 tags.
    1: kd> !poolused /t 10 4
       Sorting by  Paged Pool Consumed
    
      Pool Used:
                NonPaged            Paged
     Tag    Allocs     Used    Allocs     Used
     Leak        0        0     44988 92495328	UNKNOWN pooltag 'Leak', please update pooltag.txt
     VmbK       44   364544         8   876544	Volume Manager Extension , Binary: volmgrx.sys
     Gh05        0        0       139   796728	GDITAG_HMGR_SPRITE_TYPE , Binary: win32k.sys
    
  4. Visit the following Web site to search for the pool tag that is known as the primary consumer to determine the system component or the driver that is responsible for the memory allocation:
    http://support.microsoft.com


    For more information about pool tags, click the following article number to view the article in the Microsoft Knowledge Base:
    298102 How to find pool tags that are used by third-party drivers
    Note The MmSt tag is a common tag that is frequently identified as a primary consumer of paged pool memory.

    Note If Paged Pool does not appear to be exhausted, check the following global variable. If this is set to one in the memory.dmp, this means that the Registry Quota limit has been reached and is likely the root cause of the failure. There are no pool failures logged for registry quota failures, this is a separately tracked resource.

    1: kd> dd nt!CmpQuotaWarningPopupDisplayed l1 809e21b0 00000001

    Please follow KB304101 to properly set PagedPoolSize properly if the max appears to be low (i.e. 160MB) as Registry Quota is based on total Paged Pool configured amount and also make sure there is no arbitrary Registry Quota configured via KB124594 as this is the other controlling setting.

    For more information about how to limit this tag's usage, click the following article number to view the article in the Microsoft Knowledge Base:
    304101 Backup program is unsuccessful when you back up a large system volume

References

For more information, click the following article number to view the article in the Microsoft Knowledge Base:
177415 How to use Memory Pool Monitor (Poolmon.exe) to troubleshoot kernel mode memory leaks
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
248345 How to create a log using System Monitor in Windows
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
244139 Windows feature lets you generate a memory dump file by using the keyboard
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates

Properties

Article ID: 970054 - Last Review: April 8, 2013 - Revision: 6.0
Applies to
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows XP Professional x64 Edition
Keywords: 
kbautohotfix kbexpertiseadvanced kbfix kbsurveynew kbqfe KB970054

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com