Vista x86 patch to address 4GB+ of RAM

Remko Weijnen has released a kernel patch that allows x86 versions of Windows Vista to address more that 4GB of RAM.  I’m going to try it on my home Vista PC tonight.  The patch has been tested with SP1 and SP2.

Remko explains how his patch works, and states that the reason why Vista x86 can’t address more than 4GB of RAM isn’t a hardware limitation… it’s a Microsoft licensing limitation.

Fix: Groupwise Webaccess error CMC initialization of the GroupWise domain database failed (f107)

Earlier I wrote about loading Groupwise WebAccess 7.0.3HP1 into it’s own memory address space to lessen the effects of the MapSCCErrtoGWDCAErr-SCCErr errors.  My solution worked great for most of my WebAccess servers, but gwinter would fail to load on one of the Netware 6.5.5/Groupwise 7.0.3HP1 with the following error: 

Groupwise Webaccess error CMC initialization of the GroupWise domain database failed (f107)

TID 10063398 describes issues with loading WebAccess into protected memory when the agent is remote from the domain, which is how this server is configured.  I was trying to load WebAccess into it’s own address space, but not protecting it, but nevertheless this solution worked for me:
1)  Loading strtweb.ncf from the autoexec.ncf with the following syntax
protect strtweb.ncf
2)  Adding the following line to strtweb.ncf per TID 10063398
load dsapi.nlm
3)  adding the following line to stopweb.ncf
unload dsapi.nlm
My theory is dsapi.nlm needs to be loaded into the same address space as gwinter.nlm whenever the WebAccess is not on the same server as it’s MTA.  I’ll test this theory next time I can take WebAccess down for testing.

Firefox 2.x and excessive memory consumption

I usually have a lot of tabs open in Firefox while I work. I’ve noticed (as have many others) excessive memory consumption by the browser at times. Right now firefox.exe is using 121,484K with only 9 tabs open. I rebooted first thing this morning, and I’ve had Firefox running for only about four hours.

Most of the information I’ve found says the problem has to do with misbehaving Add-ons, extensions or themes. I’m only running four Add-ons, and decided to uninstall all but my Buttons and Google Browser Sync. Unfortunately, the problem persisted even after a reboot.

I did some more searching and found this thread that suggests loading this image to see if your browser memory consumption goes through the roof. Mine did. I read further down the thread and found a problematic add-on is indeed Google Browser Sync.

Check out this list of problematic extensions to see if any of your favorite add-ons are listed. If none of your extensions are listed, try the suggestions found on the Standard Diagnostic for Firefox and the causes for Firefox Hangs.

You can also try the Leak Monitor extension to help determine what is the cause of your Firefox memory leak. has four tips on handling Firefox memory usage as well.

Resources for Troubleshooting Windows Event 2019: The server was unable to allocate from the system nonpaged pool because the pool was empty

One of my client’s servers needs to be rebooted three times a day because of server hangs. A look in Event Viewer finds the following error corresponding to the time the server stops responding:

Event: 2019, Source: SRV

“The server was unable to allocate from the system nonpaged pool because the pool was empty”

They reboot the server, and the problem goes away for a while.

I performed some searches and found many potential known causes of this error, from Norton Antivirus 7.0-8.0 to Symantec Antivirus 10.x to ARCServe to SQL Server, but none of the suggested fixes resolved the issue. I used the following articles during the troubleshooting process:

KB 133384 for using Performance Monitor but couldn’t isolate the source of the memory leak.

KB 943998 regarding a HP NIC driver issue, KB 294346 regarding an 3com/IBM NIC driver issue

KB 895477 regarding WMI problems that may or may not be releated to SMS and/or SQL

KB 822219 describes filter driver issues relating to backup or antivirus software, specifically ARCserve and Veritas products

KB 870973 descibes a hotfix for a leak in the Volume Shadow Copy service

KB 102985 describes registry settings you can specify for memory usage – see NonPagedPoolSize

Windows 2000 – Evaluating Memory and Cache Usage – Optimizing Your Memory Configuration

I used the following tools to try and diagnose the source of the memory leak:

Poolmon.exe per KB 177415. Warning – using poolmon is not for the faint of heart

Performance Monitor Wizard and Perfmon.exe per KB 248345 for finding memory resource issues. The Performance Monitor Wizard simplifies the process of gathering performance monitor logs. It configures the correct counters to collect, sample intervals and log file sizes for troubleshooting.

Debug Diagnostic Tool 1.1 – Designed to assist in troubleshooting issues such as hangs, slow performance, memory leaks or fragmentation, and crashes in any Win32 user-mode process. The tool includes additional debugging scripts focused on Internet Information Services (IIS) applications, web data access components, COM+ and related Microsoft technologies

User Mode Process Dumper Version 8.1 per KB 241215The User Mode Process Dumper (userdump) dumps any running Win32 processes memory image (including system processes such as csrss.exe, winlogon.exe, services.exe, etc) on the fly, without attaching a debugger, or terminating target processes. Make sure to use the correct version for your CPU.

Windows Server 2003 Performance Advisor – Performance diagnostic tool for Windows Server 2003 and Windows Server 2003 Service Pack 1 (SP1)

Memtriage.exe – Resource Leak Triage Tool, a part of the Windows Server 2003 Resource Kit Tools

gflags.exe – see KB 262386 for example usage for diagnosing memory leaks

Memsnap.exe – This command-line tool takes a snapshot of the memory resources being consumed by all running processes and writes this information to a log file.

Debugging Tools for Windows was over my head, probably not useful except for programmer types.

This article has a nice description of using Process Explorer to determine your system’s maximum values for Paged and NonPaged Pools, while this one talks about troubleshooting memory leaks. This one discusses capturing application crash dumps, which allows for debugging services such as Print Spooler.

After using all these tools, I finally found the source of my problem with plain old Windows Task Manager. This article suggested viewing the Handle Count, with processes over 5,000 being suspect. Once I viewed the Handles column it was blatantly obvious JMBtnMgr.exe was the memory hog. I watched the handle count grow from 2,100 to over 6,000, when the server became unresponsive.

After restarting the server I found a shortcut to JMBtnMgr.exe in the Administrator startup menu. I took the shortcut out of the startup menu, restarted the server one more time, and haven’t found it hung in four days.

I suspect I also could have monitored Task Manager’s Non-Paged Pool Usage as well and would have found similar results. To view the NP Pool usage in Task Manager, click View – Select Columns – Non-Paged Pool