Windows 7 has a problem! No, not the bug supposedly being reported on by what I like to call headline-seeking tabloid journalists. The problem is that Windows 7 is coming on the heels of Windows Vista, possibly one of the most maligned OSes to date. It must perform perfectly or it will be crushed by the Windows haters and labeled a repeat performance with headlines like "Microsoft up to its old tricks again." Ugggh!
Let's start at the beginning, for those of you who do not read my esteemed colleague Randall C. Kennedy's column. He claimed that an "apparent fatal flaw in the NTFS driver stack" may be the cause of a bug, a "massive memory leak" that occurred when the chkdsk.exe utility was run under certain circumstances. He noted that others reported getting the Blue Screen of Death as Windows ran out of physical memory. Although Kennedy noted he did not get BSODs using several test configurations, he had no problem trusting external sources for that juicy tidbit.
[ Read for yourself: Randall C. Kennedy's test results of Windows 7's CHKDSK routine. ]
To start with, let's track back the sources. Kennedy says it was "according to various Web sources"; one of those sources was named by John Fontana of Network World as a blog called Chris123NT that gave credit back to another blog by Ryan Price. Ryan provided the recipe for re-creating the problem. In the issue of fairness, and to give my readers a chance to duplicate it, here are the steps:
- Run an elevated command prompt.
- Run CHKDSK <drive letter:> /r. (Note: the /r is used to locate and repair bad sectors on a disk.) Kennedy and others noted the memory leak only when running CHKDSK on nonsystem drives. Running on the system drive will require a reboot, so the test is not the same and doesn't cause a problem.
- With Task Manager open, you should see your memory quickly gobbled away in the chkdsk.exe process until it either stops at or around 90 percent or it maxes completely out and crashes the computer or makes it unusable, with no recourse other than rebooting.
Randall says "this is clearly a Microsoft bug." And yet Microsoft's Windows Division president Steven Sinofsky (responding on Chris123NT in a comment) says his team has been unable to reproduce the "bug" in Windows 7. In fact, Sinofsky said, "We're not seeing any crashes with CHKDSK on the stack reported in any measurable number that we could find." In Windows 7, Sinofsky said that CHKDSK does use more memory to speed up checking the disk for damage and errors (there would also be less thrashing as you can read/write larger chunks), but he said memory usage was not intended to be "unbounded" as Kennedy and others reported it was in these test scenarios.
Sinofsky said the command is intended to leave at least "50M of physical memory. Our assumption was that using /r means your disk is such that you would prefer to get the repair done and over with rather than keep working." In other words, you were fine if your system slowed down due to extra memory usage during the repair so that the repair itself would happen faster.
I spent hours doing my own testing. Everything performed exactly as it should have: no BSOD, no major issues, no bug. I was able to work at the same time as the command running (albeit at a slightly slower speed than usual, thanks to my system being busy) and then the memory was released.