Slashdot Mirror


'Daylight Savings Bugs' Loom

An anonymous reader writes "ZDNet has front page coverage of the looming daylight savings changeover, and the bugs that may crop up this year. With the extension of daylight savings time by four weeks, some engineers and programmers are warning that unprepared companies will experience serious problems in March. While companies like Microsoft have already patched their software, Gartner is warning that bugs in the travel and banking sectors could have unforeseen consequences in the coming months. ' In addition, trading applications might execute purchases and sales at the wrong time, and cell phone-billing software could charge peak rates at off-peak hours. On top of that, the effect is expected to be felt around the world: Canada and Bermuda are conforming to the U.S.-mandated change, and time zone shifts have happened in other locales as well.'" Is this just more Y2K doomsaying, or do you think there's a serious problem here?

23 of 403 comments (clear)

  1. Things you should know. by suso · · Score: 5, Informative

    http://www.bloomingtonlinux.org/wiki/DST_Time_Chan ge_Issues

    A year ago, after most of Indiana went through its first timezone change in 40+ years, we found out that it presented a few problems in Linux, I tried to post a story to Slashdot about it to warn other people in the US that they would be dealing with this problem later when the rest of the US changes to the new DST. I tried several times to post it and they were all rejected.

    Basically, you need to make sure that if you change your timezone data on your system that you restart everything, otherwise when the time does change, some programs continue to use the old timezone data and are an hour off.

    1. Re:Things you should know. by Anonymous Coward · · Score: 5, Funny

      A year ago, after most of Indiana went through its first timezone change in 40+ years, we found out that it presented a few problems in Linux, I tried to post a story to Slashdot about it to warn other people in the US that they would be dealing with this problem later when the rest of the US changes to the new DST. I tried several times to post it and they were all rejected.
      Mod parent down, informative.
    2. Re:Things you should know. by Ubergrendle · · Score: 4, Interesting

      Our datacentre has ~ 500 Solaris / HP-UX / AIX boxen, and ~ 1000 Windows servers.

      15 minute change window to apply patch, another 15 minutes to reboot successfully and come back online. Multiply 30 min x 1500 = 45,000 minutes, or 750 hours. But we only have one weekly change window, Sunday mornings from 2-6am. Assuming finite number of staff, contingency (there's always going to be some problems), etc... we started last September. We might just make the deadline.

      So yes, I think its a bit of a problem. There's also the unspoken assumption that people learned their lessons during Y2k and have sufficient date handling logic to address changes to DST...nothing hard coded in the underlying applications.

      --
      John Maynard Keynes: "When the facts change, I change my mind. What do you do?"
    3. Re:Things you should know. by shawn(at)fsu · · Score: 4, Insightful

      Multiply 30 min x 1500 = 45,000 minutes, or 750 hours
      Yeah that sounds about right if you do each machine one at a time. I should hope a datacentre is a little more efficient than that.

      --
      500 dollar reward for tip(s) leading to the arrest of the person(s) who stole my sig.
    4. Re:Things you should know. by Nimey · · Score: 4, Funny

      That's a damned lie and demeaning to Windows to single it out like that.

      MS-DOS is the same way. Apple ProDOS too.

      --
      Hail Eris, full of mischief...

      E pluribus sanguinem
    5. Re:Things you should know. by tushar · · Score: 4, Insightful

      Why do your programs use the local timezone, anyway? Programs should handle and store dates in UTC, and convert to the local timezone only for display.
      Saving the time in UTC does not get rid of all problems. Programs that store the data for future events will still run into issues. An event that was stored in the database before the system was patched will be off by one hour if the time falls within the dates that have the daylight savings rule changed.
    6. Re:Things you should know. by Threni · · Score: 4, Funny

      > 15 minute change window to apply patch, another 15 minutes to reboot successfully and come back
      > online. Multiply 30 min x 1500 = 45,000 minutes, or 750 hours

      Yeah, someone needs to tell my local cinema about that. They only show films for a few weeks, but with 1000 people in each showing, and the film lasting 90 minutes, that's 90,000 minutes, or nearly 9 weeks! There's going to be a lot of disappointed people...

  2. y2k = media working for once by TinBromide · · Score: 5, Insightful

    The reason y2k was such a letdown was because everybody took heed of the media hype and patched their stuff. If there had been no hype before, there might have been the problems that the hype was warning about. (or not, sensationalism is sensationalism)

    Its like you're driving along and there's a huge backup for miles because of an accident in the middle of the road after a bend. Now this huge backup may have slowed you down and made you aware that there was a problem. If it was just you and the wreck, you may have plowed into it if you weren't paying attention.

    Same thing with this hype. We should tolerate the hype because the heightened coverage will get bosses talking to programmers about fixing the software, and it'll turn out to be nothing.

    --
    Is it sad that I am more likely to recognize you and your posts by your sig than your name or UID?
    1. Re:y2k = media working for once by DrXym · · Score: 4, Informative
      I think y2k was a let down because it was fairly straightforward to fix software and tell if it was going to get bitten or not. Basically anything that stored dates as two digits had to be fixed. The bigger problem will come in 2037 when lots of clunking software with no source code wraps around.

      The DST thing is pretty evil too because it's usually up to runtime stacks like Java and CRT to decide on the timezone and time. If they give you the wrong time you're screwed. For the most part you might be okay if everything resolves down to some registry entries or timezone data files but that isn't always the case. There are functions such as Microsoft's _tzset() which are HARDCODED to a particular behaviour and apps that link to the CRT or have their own DLLs will be broken unless you recompile them.

  3. rates? by cascadingstylesheet · · Score: 4, Funny


    and cell phone-billing software could charge peak rates at off-peak hours


    Aiyeeee!!!!!!!!!!!!!

    1. Re:rates? by johnlcallaway · · Score: 4, Insightful

      And could charge off-peak rates for peak hours. The number of hours for peak and non-peak will remain the same, only the start times will change.

      Everyone wants a credit when they are over billed, but no offers to give money back if they are under billed.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
  4. A site that will give you USEFUL Info..... by 8127972 · · Score: 4, Informative

    ... On how to deal with this is below:

    http://www.reganfamily.ca/dst/

    This is likely more useful than the original article. It has resources for everything from Blackberries to UNIX.

    --
    This is my opinion. To make sure you don't steal it, it's covered by the DMCA.
  5. Ahem, Not Exactly by Nom+du+Keyboard · · Score: 4, Informative
    While companies like Microsoft have already patched their software,

    Ahem, not exactly. No patch for the perfectly good Exchange 5.5 server we're using with Outlook 2000. Suddenly we have to update to the latest Exchange and Outlook 2003 on every d@mn desktop. And I'm in Arizona were we don't even have daylight savings time!!!

    --
    "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
  6. Cool by Anon-Admin · · Score: 4, Funny

    And I thought that the year 1906 would pass with out any issues.

  7. Already has ramifications by michaelmalak · · Score: 4, Interesting

    Newer JDK's already have the new time zone rules encoded, and this can cause subtle bugs to suddenly surface. It turns out that Date.equals() does a deep object compare, including the time zone rules (not just which time zone you're in, but the rules regarding when daylight savings starts and ends). Thus if you have multiple JVMs involved, such as one on a database server and one on an application server running slightly different JVM revs (e.g. 1.4.2_08 vs. 1.4.2_11), then naive date comparisons (using equals() instead of equality on getTime()) can fail.

  8. Get rid of daylight saving altogether by Viol8 · · Score: 4, Insightful

    It serves no useful purpose any longer in what is almost a 24 hour society. What difference does it make to the vast majority of people what time the sun rises and sets anymore? All it does is add a small extra layer of confusion and complexity thats no longer necessary? If people really don't want to get up when its dark then go to work an hour later and leave an hour later. With flexitime its really not an issue anymore.

  9. Old OSes and Old JREs are the biggest concern by poopie · · Score: 4, Insightful

    Think of how many companies have old systems that just continue to run forever. Most OS vendors drop OS patch support after about 5 years.

    Okay, so all system processes should use UTC. We all know that. Users don't set their watches to UTC though.

    Want a DST patch for Solaris 8? RHAS 2.1? Windows NT? You're going to have to shuffle and maybe you'll need to update the timezone files with 'zic' yourself. Have hundreds or thousands of these machines. Sucks to be you.

    Oh, and the big killer is that Java has timezone rules embedded in it. That's right. Java VIRTUAL MACHINE. Java tracks timezones and DST changes INDEPENDENT of the OS since Java wants to be it's own OS.

    So, if your company standardized on j2ee when you moved off the legacy systems for y2k, I'll almost bet you that the OS those java apps are running on won't have DST patches from the vendor, and your apps could have multiple JVMs that contain the wrong DST rules. You'll need to fix both of those if your java apps have anything to do with timezones and if you care about the times displayed.

    I'd really like to get a list of everyone who voted for the 2005 dst timezone changes and start a movement to make them take responsibility for the huge business cost of their stupid legislation. It has to be 100X the cost of what they expected the changes to save...

  10. Re:Not such a big deal by GogglesPisano · · Score: 4, Informative

    We have literally hundreds of servers running Windows 2000, and this DST patch was a major headache. As the parent noted, Microsoft did not include Win2K in their publicly released update.

    There is a freeware utility to apply the DST patch on Win2K machines here (as a bonus, it also supports WinNT).

    Note that you may also need to update the Java JRE/JDK.

  11. Re:no need o worry by lucabrasi999 · · Score: 4, Funny
    daylight savings times and zones change constantly in australia and everything is fine here

    Everything is fine in Australia? Remember folks, this announcement is coming from the country that gave us The Wiggles.

  12. Herding cats by Dachannien · · Score: 4, Funny

    Let's switch to the metric system while we're at it.

  13. Re:Y2K was an oddity and mis-explained by LMacG · · Score: 4, Interesting

    "In no way were dates routinely stored as two byte characters (99 being the max) when 1 byte would get you to 255 easily." Wrong. In EVERY WAY dates were routinely stored as three sets of two byte characters.

    What you are completely ignoring is that the vast majority of the code that had to be examined and patched was written in COBOL. COBOL that store dates as a string of six digits. Digits that were stored in many cases as EBCDIC characters, not hexadecimal integer values. And just to make it fun, in some cases the source code was not available.

    "[A]nyone that created a four digit date by String Concat: "19" + String(date) would " probably not have been born yet when the programs that needed to be fixed were written. It wasn't the programs that were written in the 1990's that had to be dealt with, it was the ones written in the 1960's. And if you don't believe there were any of those in use, then I suggest you have no idea what's really happening at your bank. Or in the US air traffic control system, for that matter.

    --
    Slightly disreputable, albeit gregarious
  14. How to test if your linux machine is ready by Se7enLC · · Score: 5, Informative


    > date --date="Mar 10 15:00:00 UTC 2007"
    Sat Mar 10 10:00:00 EST 2007
    > date --date="Mar 11 15:00:00 UTC 2007"
    Sun Mar 11 11:00:00 EDT 2007

    This won't set your clock or anything, it just does the timezone conversion from UTC and displays the results according to the local timezone you have selected.

    1. Re:How to test if your linux machine is ready by srvivn21 · · Score: 4, Informative


      > date --date="Mar 10 15:00:00 UTC 2007"
      Sat Mar 10 10:00:00 EST 2007
      > date --date="Mar 11 15:00:00 UTC 2007"
      Sun Mar 11 11:00:00 EDT 2007

      This won't set your clock or anything, it just does the timezone conversion from UTC and displays the results according to the local timezone you have selected. Or just run zdump -v /etc/localtime | grep 2007" and make sure it says "Mar 11" instead of "Apr 1".

      updated> zdump -v /etc/localtime | grep 2007
      /etc/localtime Sun Mar 11 10:59:59 2007 UTC = Sun Mar 11 01:59:59 2007 AKST isdst=0 gmtoff=-32400
      /etc/localtime Sun Mar 11 11:00:00 2007 UTC = Sun Mar 11 03:00:00 2007 AKDT isdst=1 gmtoff=-28800
      /etc/localtime Sun Nov 4 09:59:59 2007 UTC = Sun Nov 4 01:59:59 2007 AKDT isdst=1 gmtoff=-28800
      /etc/localtime Sun Nov 4 10:00:00 2007 UTC = Sun Nov 4 01:00:00 2007 AKST isdst=0 gmtoff=-32400

      needswork> zdump -v /etc/localtime | grep 2007
      /etc/localtime Sun Apr 1 10:59:59 2007 UTC = Sun Apr 1 01:59:59 2007 AKST isdst=0 gmtoff=-32400
      /etc/localtime Sun Apr 1 11:00:00 2007 UTC = Sun Apr 1 03:00:00 2007 AKDT isdst=1 gmtoff=-28800
      /etc/localtime Sun Oct 28 09:59:59 2007 UTC = Sun Oct 28 01:59:59 2007 AKDT isdst=1 gmtoff=-28800
      /etc/localtime Sun Oct 28 10:00:00 2007 UTC = Sun Oct 28 01:00:00 2007 AKST isdst=0 gmtoff=-32400