STOP 0xC2 aka BAD_POOL_CALLER Blue Screen and bad memory
Tonight my home automation server (running Windows Server 2003) bluescreened with a STOP 0xC2, BAD_POOL_CALLER fault.
The specifics of the fault were 0xC2 (0x00000007, 0x00001153, ...).
Rebooting caused a chkdsk and then the system came up...and promptly blue screened again.
According to this doc page on microsoft.com, the 0x07 parameter indicates “Attempt to free a memory pool that was already freed.” Further Google Bing searches indicated that this type of error is usually due to a faulty device driver. In fact, this KB Article shows how to debug the memory dump file to determine the faulty driver.
Booting the system into safemode resulted in a memory write fault in explorer.exe.
I haven't touched the software on this system for weeks, so I strongly suspected some sort of memory failure. So a quick Google Bing search for “memory tester” came up with Memtest86. Within minutes I had burned a bootable CD with Memtest86 3.1a on it, booted the CD in the system, and saw mucho memory errors fly across the screen!
I powered down the system, removed all 3 DIMMs (512MB each), and plugged one in, restarted the system and Memtest started. Kabang! Error city.
So I took that DIMM out and tried the next one. No errors. Same with the 3rd.
I put the 2 DIMMs that tested OK in the system and rebooted into W2K3. The system is now running fine. This box doesn't really need 1.5GB of memory so if I get new memory for it, it will be to replace the existing good DIMMs (“Spectek“ brand) with a different high-quality brand just to be safe.
Hopefully this will help others with STOP 0xC3 errors: it could be a memory failure.
[Update 5/26/04]
I didn't notice it last night but Microsoft has a memory test utility (on a bootable CD-ROM image no less) at http://oca.microsoft.com/en/windiag.asp.
[Update 6/15/09]
This is by far the most popular hit on my website even 5+ years later. I get tons of feedback that it’s very useful. The STOP 0xC2 error (BAD_POOL_CALLER) fault can occur on Windows XP, Windows Vista, Windows Server 2003, Windows 7, Windows Server 2008, and Windows Server 2008 R2 and in almost all cases it indicates you have bad memory.
In addition I have found (on another machine running Windows Vista and Windows 7) that STOP: 0x0000007e can also be caused by bad memory.
The Windows Vista and Windows 7 a built-in memory tester:
- From the Start menu, in the search box type “memory”
- “Memory Diagnostics Tool” (“Windows Memory Diagnostic” in Windows 7) will show up. Click it.
- Click on “Restart now and check for problems (recommended)”
- When the PC reboots the memory diagnostic will start.
You can also run this utility directly from the boot manager menu when you boot your computer. Press F8 before it says “Starting Windows” and then hit Esc. This tool can also be found by booting the installation DVD and following similar steps.
I think amazon.com is a great place to buy memory. They carry just about all kinds and their prices are great.