[Nolug] Year 2038 Problem

From: John Souvestre <johns_at_sstar.com>
Date: Mon, 19 May 2014 19:34:25 -0500
Message-ID: <04c101cf73c3$425753b0$c705fb10$@sstar.com>

Hi guys.

 

You thought that Y2K was a nuisance? Year 2038 (aka Y2038 or Y2038) is worse.
The problem goes much deeper for the Linux, Unix, and POSIX operating systems
themselves, some IBM PC BIOS'es, and everything that depends on them for the
date, including programming languages.

 

The problem is that original versions use a 32 bit word to store the time &
date, as seconds since the epoch date (1/1/1970). This counter rolls over on
1/19/2038 at 03:14:08. So anything using the old 32 bit storage is hosed.

 

For some, the problem has already started. Consider: If you were buying a
life insurance policy or doing some financial planning today, what would the
end date be? Or, if you were getting a 30 year mortgage it would end in 2044.
Even a 20 year mortgage ends in 2034 - which is only 4 years short of the 2038
rollover.

 

Newer versions of Linux/Unix have switched to a 64 bit size. How new? It
depends on which flavor of Linux. IBM PC BIOS'es are only used to get the
current date, so they won't be a problem (if there are any left) till 2038.
Programming languages vary, and remember that the version installed on a
target machine probably isn't current. Here's a few which fall short (or
did):

 

- Assembly: Varies!

- C and C++: Old time libraries are bad.

- C#: Safe.

- COBOL: Fixed ???

- Fortran: Fixed ???

- Go: Safe.

- Haskell: Fixed in ver 6.6.

- Java: Safe.

- JavaScript: ???

- Node.js: ???

- Objective-C: Safe.

- Perl: Fixed in ver 5.12. But I regularly see boxes with as far back as
ver 5.8.

- PHP: New DateTime class in ver 5.2, but old date functions remain
broken.

- Python: Fixed in ver 2.6.

- Ruby: Fixed in ver 1.9.2

- TCL: Fixed ???

 

I put together the above list quickly. Please let me know if you see any
errors or can resolve any of the ???'s.

 

Note: Don't forget about the 3rd party packages/modules. Many need updating,
also.

 

Note: Besides end user applications, utilities are affected too. Any
software!

 

Note: Lots of data and databases, too. MySQL for example.

 

Note: BOTH the operating system AND the programming language need to be safe.

 

Note: DOS won't have a problem till 2100. Windows and iOS are safe for a
very long time.

 

Enjoy,

 

John

    John Souvestre - New Orleans LA

 

___________________
Nolug mailing list
nolug@nolug.org

Received on 05/19/14

This archive was generated by hypermail 2.2.0 : 05/19/14 EDT