Slashdot Mirror


Microsoft Issues Workaround For Zune Freeze

UnknowingFool writes "As a followup to the Zune New Year's Eve meltdown, Microsoft has issued a workaround for what some users have correctly guessed was a bug caused by a leap year. To recover from the problem, let the Zune drain the batteries and restart it after noon on January 1, 2009. Many sites are reporting that Microsoft has 'fixed' the issue, but technically all Microsoft has done is to ask users to wait out the conditions that triggered the bug. Unless a software patch comes out, Zunes will suffer the same problem again in four years." Reader ndtechnologies adds, "According to posts in the Toshiba forum at anythingbutipod.com, the same bug that shut down millions of Zune 30's also affects the Toshiba Gigabeat S. The Zune 30 is based off of the Gigabeat S series and was co-developed by Microsoft with Toshiba."

10 of 277 comments (clear)

  1. It probably won't last another 4 years by thetoadwarrior · · Score: 5, Funny

    So this is an acceptable solution.

    1. Re:It probably won't last another 4 years by Tubal-Cain · · Score: 5, Insightful

      Microwaves do not lock up because of leap year issues.

    2. Re:It probably won't last another 4 years by mindwhip · · Score: 5, Informative

      The microwave failure would be acceptable wear and tear. The Zune was in effect sold with a predictable and correctable flaw (leap years are very predictable), causing it fail out with normal wear and tear, which would class it as defective product.

      In UK law at least this is a significant difference... you can never tell in the US though.

      --
      [The Universe] has gone offline.
    3. Re:It probably won't last another 4 years by Pentium100 · · Score: 5, Insightful

      You can get the microwave (or a tape recorder, or a VCR) fixed by a third party (or do it yourself) depending on what part has broken.

      Only Microsoft can fix these firmware issues. If the source code for the firmware was publicly available, someone could fix the problem and distribute the fixed firmware for free or for money, but since it isn't, only MS can patch it.

    4. Re:It probably won't last another 4 years by witherstaff · · Score: 5, Insightful

      Why are consumer electronics any different than any other product? Let's talk about items costing less than a laptop, so less than 2000.

      Would you accept if your 5 year old ___ broke , was unfixable, and needed a new replacement?

      • Home Furnace
      • Central Air
      • Oven
      • Refrigerator
      • Bike

      You get the picture. Why are electronic manufactures exempt from shoddy products that don't have some sort of reasonable lifespan? Not wear and tear or dropping a product, just the product becoming unusable due to the product having some bug/feature to break it outright like the Zune.

      As to a microwave, a 5 year old whirlpool oven broke on me and they no longer had replacement circuit boards. Whirlpool expects their products to have at least a 10 year lifespan. They pro-rated my equipment and sold a new unit, installed, for 33% of the cost. Now that's an acceptable solution for shoddy workmanship.

    5. Re:It probably won't last another 4 years by Paradise+Pete · · Score: 5, Insightful

      The Zune was in effect sold with a predictable and correctable flaw

      And if you look at the bug in the code (line 259) it's atrocious. Something a junior programmer would be embarrassed about.

      When days is 366 it causes an infinite loop. And also note that simply changing line 263 to use 365 causes a different bug. So the whole approach is wrong. It ought to simply be

      while (days > daysInYear(year))
      {
      days -= daysInYear(year);
      year += 1;
      }

  2. Re:Can anyone explain this bug? by Anonymous Coward · · Score: 5, Informative

    Here's the actual buggy code.
    The error is infinite loop in ConvertDays(), starting at line 249. The first loop does not cope with "IsLeapYear() == true" when "days == 366"

  3. Amazing.. by NfoCipher · · Score: 5, Funny

    The first step to fix any microsoft problem - reboot.

    --
    I'm sorry, I can't hear you over the sound of how awesome I am.
  4. Re:Can anyone explain this bug? by Anonymous Coward · · Score: 5, Informative

    In case you can't see how this fails: On December 31st in a leap year, days is counted down to 366 like it's supposed to, and then the IsLeapYear() test is true, but days>366 is not, so the loop body does nothing and the while becomes an infinite loop.

    This code can not possibly have been accepted in any kind of code review. Someone would have pointed out that there are O(1) formulas for calendar calculations.

  5. Instead of bothering with a fix by dmomo · · Score: 5, Funny

    Wouldn't it be faster for Microsoft to simply give each of the 8 users a call and walk them through the work-around? If their numbers change in the next four years, they can simply notify Zune support.