The 2038 Problem
Here’s an interesting scenario (especially for the IT geeks), the Year 2038 Problem. What is it? The Year 2038 Problem is also known as the Unix Millennium Bug, Y2K38. The Year 2038 Problem will cause some computer software to fail in the year 2038 and even possibly before hand, affecting all software systems that store system time as a signed 32-bit integer.
System time is measure by a system clock which counts the number of seconds since the arbitrary starting date called the epoch. This starting date is 00:00:00 UTC on Thursday, 1st January 1970.
The furthest in which this time can be represented is 03:14:07 UTC on Tuesday, 19th January 2038. After this, time will wrap around and go into a negative number and therefore being interpreted as a date in the year 1901 rather than 2038. Most systems will be affected by this very close to, or even on the day, but programs written that date forward will happen sooner. For instance, a program that is storing a date 20 years into the future will crash and fail in 2018.
Because most Unix-like systems store and manipulate time using this format (it is generally referred to as Unix Time), other non-unix based operating systems and software that store and manipulate data like this will be just as vulnerable.
One of the earliest problems with this, surfaced in May 2006 in the AOLserver software. The software was designed with a kludge to handle a database request that should NEVER time out. The design specified an arbitrary time-out date well into the future. The date configured for the request to time out was, one billion seconds… Crazy! I know! Try counting, it will only take you about 32 years, and after 9:27:28pm on 12 May 2006, when this problem first happened, it went beyond the 2038 cutoff date. Therefore, after the request hit 2038, it overflowed and returned a date that was actually in the past and caused the software to crash. AOL’s server management had to edit the time-out to a lower value after this.
One thing is for sure, I cannot wait for 2038! As big as the Y2K bug was, it was never confirmed to happen, and didn’t really either. The Unix Millennium Bug is. Computers are now using 64-bit architectures, and these operating systems are becoming more common. The new 64-bit value introduces a new wraparound date more than twenty times greater than the present age of our universe! 292 billion years from now on Sunday, 4th December 292,277,026,596AD. Unfortunately, not all computers will be updated for this and a lot of 32-bit applications running on 64-bit systems are likely to be affected by the issue.
But don’t worry, I promise… in 2038 the world will still turn, the sun will keep burning and your Facebook and Twitter status will still be there. Who knows? It might even be displaying ‘138 years ago’ 😉