A killer Windows 7 bug? Sorry, no

A killer Windows 7 bug? Sorry, no

Summary: The blogosphere is abuzz over a newly publicized bug in Windows 7. It's being called "nasty," "critical" and even a "show stopper." After a couple hours of testing, I've concluded there’s much less here than meets the eye. The idea that this bug is reproducible 100% of the time is incorrect, and in fact some of the seemingly alarming behavior is actually by design. I've got details and screens to show you what to expect.

SHARE:

The blogosphere is abuzz over a newly publicized bug in Windows 7. I read about it yesterday on Chris123NT’s blog, where it was described as a “critical bug in Windows 7 RTM.” The story picked up momentum today when InfoWorld’s Randall Kennedy (the man behind the “Save XP” Astroturf campaign) published a sensational polemic: “Critical Windows 7 bug risks derailing product launch.” Tom Warren at Neowin called it “rather nasty” but sensibly concluded that it’s far from a “show stopper.”

My conclusion? It’s alarming behavior if you’re unaware of what’s happening. But when you look more carefully, it’s arguably a feature, not a bug, and the likelihood that you’ll ever crash a system this way is very, very small and completely avoidable.

You can go read Chris’s initial report to see the repro steps. Basically, you need to run the Windows Chkdsk command using the /r switch, which is designed to locate and repair bad sectors on a disk. According to the initial report, if you use this tool as described, “you should see your memory quickly gobbled away in the chkdsk.exe process until it either stops at or around 90% or it maxes completely out and crashes the computer.”

Let’s all take a deep breath, shall we? I’ve done a couple hours worth of testing this morning on the subject. There’s much less here than meets the eye. The idea that this bug is reproducible 100% of the time is incorrect, and in fact some of the seemingly alarming behavior is actually by design.

First, you won’t see this bug on your system drive. Why? Because if you try to run Chkdsk with this switch (either from the command line or from the graphical interface) you’ll be told that the drive is in use. Windows will politely offer to schedule the disk check to run the next time you reboot and before Windows loads. The disk check in this mode is quick and harmless.

Most systems have a single drive, with a single partition. On such a system, you will never see this issue. Second, if you try to run disk check on a non-system drive that is in use (one where you have recently worked with data files for example), you’ll be offered the opportunity to dismount the drive and continue the check. If you refuse, Windows politely offers to reschedule the check to run at startup, just as in the previous case.

Third, I’ve heard at least one observer speculate that this might affect you if you insert a removable drive and Windows prompts you to “scan and fix it.”

I tried doing exactly that, inserting several USB flash drives until I found one 4GB model that triggered this prompt. It produced the following dialog box:

Note that the second option, to “Scan for and attempt recovery of bad sectors” is the equivalent of the /R switch for Chkdisk. It’s not selected by default, and even when I clicked it, the disk check ran perfectly, without incident. I tried running Chkdsk /r from the command prompt on the same disk, with no excessive memory usage.

As a final stress test, I ran Chkdsk with this option on a 160GB portable USB hard drive, as prompted by the Scan and Fix dialog box. It did indeed exhibit what seemed like alarming behavior, rapidly consuming all but 50MB 500MB or so of the 6GB of RAM on my test system. (That green bar on the bottom means I'm using roughly 93% of available RAM.)

[Click image to see a larger version]

I allowed the process to run, and although it took roughly 15 minutes to complete the check, memory usage never hit the system’s maximum, other programs remained completely responsive, and I was even able to run a second instance of Chkdsk /R on another USB drive.

Oh, and the original report was slightly off base. The extreme memory usage appears to be in the Explorer.exe process, not in Chkdsk. Update: The original report noted, correctly, that high memory usage is observed in the Chkdsk.exe process if you kick off the disk check from a command prompt. If you perform the exact same operation from the more familiar graphical interface, the measurement in Task Manager is different, with Explorer.exe being credited with the memory usage. However, the end result is exactly the same. I repeated these tests using both the graphical and command-line methods on multiple drives to confirm.

[Click image to see a larger version]

Windows boss Steven Sinofsky took the rare step of visiting the original blog and posted a comment explaining the issue:

In this case, we haven’t reproduced the crash…. [T]he design was to use more memory on purpose to speed things up, but never unbounded — we requset [sic] the available memory and operate within that leaving 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.

While we appreciate the drama of “critical bug” and then the pickup of “showstopper” that I’ve seen, we might take a step back and realize that this might not have that defcon level. Bugs that are so severe as to require immediate patches and attention would have to have no workarounds and would generally be such that a large set of people would run across them in the normal course of using their PC.

My experience bears out that explanation perfectly. According to Sinofsky, Microsoft is now doing “overnight stress testing of 40 machines” to see whether the bug is reproducible. If so, I would expect a patch in short order. But based on my testing I have to agree this is interesting, but far from a “show stopper.”

Topics: Hardware, Microsoft, Operating Systems, Software, Windows

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

229 comments
Log in or register to join the discussion
  • Why are people so obsessed with unused RAM?

    What, pray tell, is the purpose of RAM if it isn't for it to be used by something? Bragging about unused RAM is like bragging about how your grocery getter has 500HP even though you never use more than 50HP.

    [i]use more memory on purpose to speed things up, but never unbounded[/i]

    Exactly right. If there is a bug where it demands more than that, fair enough, but it isn't a bug to use everything but 50MB of RAM if getting that RAM means that the job finishes faster.

    Yawn, I guess when ABMers have nothing to complain about, they'll just make stuff up.
    NonZealot
    • It's not the unused RAM thing

      It's the massive amount of usage by this thing
      that is ticking some people off. I can understand
      the justification that if this pops up, most
      people would want to 'get the freaking scan done
      and breathe somewhat easier' that they are saying,
      but almost 5 GB's? No, it shouldn't use that much
      memory.
      Lerianis10
      • Why not?

        It's not the default check disk setting. The user has to specifically choose to run a radical diagnostic and repair option, presumably because they believe there is something seriuously wrong with the disk that requires immediate repair.

        Meanwhile, you can continue to work with the machine as I've been doing here. No crash, no slowdown for simple tasks.

        I don't understand the scenario where you would want to do this task in the background while doing other demanding things.
        Ed Bott
        • Yup

          I almost always run the check and repair option "on non system disks", but the problem as I see it is things like auto updates that may start while the system is running and try to gobble up even more memory. That ends up duping a *lot* of stuff to the swap files and retrieving it which slows everything. So...I always choose to let the system do the cleaning house on a reboot while I switch to another machine. Most of these machines are running 5 or more major tasks at the same time so running this on an on-line machine is not a safe option. OTOH I never paid much attention to how much memory it was using. However I do have to admit I prefer XP Pro by a wide margin over Vista U and Win 7 and I've been running Win 7 on 2 out of 5 machines since it became available. I particularly dislike the native handling of the network in Win 7, but I can manually get around that. It did take me a while to figure how to do that which turned out to be fairly simple<sigh><:-))
          rdhalsteatzd
        • Have to agree - Much Ado About Almost-Nothing

          In recent years I find I've been less tolerant of Microsoft's missteps - but this is so much overblown rhetoric about an issue that is highly unlikely to impact 99.9% of the population, and will impact no one on a regular basis.
          rickb@...
        • /r is now radical???

          Wow, who knew that Microsoft was introducing radical diagnostic and repair options...especially since these radical options have been around since the DOS days. Come on Ed...words matter, especially in print. There is nothing radical about running chkdsk with a /r flag. We can agree that this really isn't a big problem, but to use this kind of verbiage to describe a process most of us have been using since the 1990s really makes you come off sounding like a nutball.
          jasonp@...
          • That's my opinion based on experience

            Chkdsk /r is a last-resort tool. As the description says, it is designed to identify bad sectors and recover data. I don't recommend it.

            In the 21st Century, with SMART technology in use on virtually every drive, this command is really unnecessary and potentially dangerous. It's a relic of a bygone era. If I thought I had a drive that was failing, my first goal would be to back everything up, immediately. Then I would restart the PC and run a full-fledged diagnostic utility, preferably the one recommended by my drive manufacturer.
            Ed Bott
          • I find chkdsk myself useless for the most part

            I rather run hard drive tools from manufacturer then chkdsk. It seems every time I run chkdsk it fixes or says it did my issue only having the issue resurface on reboot.

            So I don't take any chance if I think the hard drive has issues I will run the tools from manufacturer of the drive then look up the code and go from there.
            Randalllind
          • Gee, I use chkdsk /f on occasion

            Never had an issue. At least not with XP.

            Win7 should at least be able to do this if XP safely if XP can.
            Wintel BSOD
          • Sounds to me like your HDD is about to die!

            ChkDsk can only do so much, marking known bad sectors appropriately. But if you run CHKDSK and the next time you reboot your machine complains again that your HDD has bad sectors, back-up everything on the drive that you can't restore from CD/DVD and replace the drive.
            de-void-21165590650301806002836337787023
          • Bad sectors

            The only time the /r switch is of use is if you have bad sectors on your drive. If you are even running a drive with bad sectors the first thing you should do is backup your data to a good drive. The only time I've ever gotten bad sectors was with a faulty power supply that most likely caused a head crash while the drive was churning away. Bad sectors are an end of life signal for your hard drive and will only get worse causing more data loss.
            blaacksheep
        • Whats the problem

          I am like you ED I do not see a problem. For one I never run the chkdsk cmd without scheduling a reboot. Whats is the point to check a drive you think is failed and still be working on that PC? If it is a removable drive that I suspect a problem I will run my diag program and rewrite 1 or 0 to it 35 times (gutman i believe) I would not trust chkdsk to fix problems with my drive might as well refreseh it and be sure your data is safe.

          I think the main problem these people have is they freak when their babys use all that memory they bought. In fact I think I will try this on my desktop and see how much of my 8GB is used up. I have never seen more than half used at any time and this might be a great way to test mu memory.

          Thanks for the truth.
          rbettencourt@...
      • it isn't even that

        Most people can understand that applications can get bigger, that as
        operating systems become more complex and take on more
        responsibility it gets bigger in size. That isn't what people are
        complaining about.

        Windows Vista is almost like Firefox/Mozilla - the problem is that as you
        do more the memory usage increases but when one closes tabs, the end
        user expects the memory to be reclaimed when these applications are
        closed because what ends up happening is the hard disk starts to thrash
        because the memory isn't being flushed.
        Macintoshtoffy
        • Not quite

          Most modern browsers incorporate new techniques for sand-boxing each page containing HTML that either runs script or which incorporates some kind of add-in (e.g. Flash).

          Most Windows browsers take advantage of Windows' ability to separate each running process from one another. Thus, if you open IE/FF/O/C and open 10 pages in 10 tabs, chances are you'll see around 8-10 processes listed in task manager.

          Close those tabs, however, and you'll see all but perhaps 2-3 processes die and their resources release.

          Why are there 2-3 processes left running? Sometimes because add-ins don't close properly (esp. Flash & Yahoo toolbar). But also most browsers keep a master process and a page process running so that they can respond more quickly when you choose to browse again.
          de-void-21165590650301806002836337787023
      • So then how much?

        So, how much ram should it use? Can you specify
        exactly what algorithms should be used to get the
        job done as quickly as is possible? Not all fast
        algorithms are memory efficient. Actually,
        algorithm efficiency is usually dependent on
        available memory to do more and more processing in
        a manner the full realizes the available
        resources.
        payton@...
      • Bogus.

        I don't run Windows anymore, but I can tell this is bogus. Nobody should "keep working" with a corrupt disk. If you suspect a disk error, you need to fix the disk error first, then continue working. And if you're going to fix the disk first, any sane person would fix it fast.
        sporkfighter
      • chkdsk /r??

        if your disk is bad enough to use chkdsk /r on it, then when it runs, you had better not have any files in use, or you run the very great risk of corrupting important system or application files. If my disk structure was in shuch bad shape to require chkdsk /r, I have found it better to run it from a third party boot cd that can log on to the windows installation running from the cd. This way, no files will be in use when you run the command. I want the chkdsk to be the only program running and I want it to use all of the memory it is designed to use.
        johnmarks@...
    • Good question

      I never understood that myself. Drives me nuts.

      Unused RAM is wasted RAM.

      The one and only, Cylon Centurion
    • I understand your confusion

      When using an operating system that can only effectively do one thing at
      a time, any process that doesn't use all available ram is inefficient.
      frgough
      • What are you talking about?

        Windows multi-tasks just fine. What an odd comment for you to make.
        NonZealot