The Next Millennium Headache

by Michael Stutz

 

3:09pm  12.Aug.98.PDT

Sometime in the future, the day and date settings deep inside millions of computers will roll over to a value that the machines don't understand. The likely upshot: system crashes in critical systems such as air traffic control and banking.

 

But don't panic -- we still have almost 40 years to deal with it.

 

"We're in for a long run of interesting problems," said computer date watcher and author Capers Jones. He added that AD 2038 -- a potentially dark day for computers running flavors of the Unix operating system -- is only one of many dangerous dates coming up in the computing world.

 

That world is presently focused on New Year's Eve 1999, the day of reckoning for the Year 2000 bug. That night, while the world throws a serious party, many older machines and systems around the world are expected to drop off the grid, as their muddled two-digit date counters mistakenly process the year 2000 as the year 1900.

 

Whatever happens with Y2K, other machines with newer, but still problematic, code are silently ticking down to another day-and-date bug that has a deadline a mere few decades later. This latter issue, known as the Unix date problem, is expected to kick in -- with potentially similar frightening results -- 38 years later.

 

On that date, the built-in variable used to keep time in Unix and similar operating systems will expire. Such highly reliable systems are at the heart of the current Internet, as well as untold government and industry systems.

 

"Certainly by 2038, Unix 'time_t' will be 64 bits or more, assuming Unix survives in some form," said Dennis Ritchie, co-author of the Unix operating system.

 

The Unix date problem happens because of the way Unix operating systems keep track of time. Time is measured in seconds since midnight, 1 January 1970 -- this is known as the "epoch." It is stored in such systems in a variable called "time_t," which can store a value up to 2,147,483,647 -- but no larger.

 

On 19 January 2038 at 03:14:07, that number of seconds will have been reached, and time will be up.

 

With 40 years to resolve the Unix date problem, no one is yet building bunkers in the desert, like some Y2K doomsayers. But experts are cautious.

 

"The same line of reasoning is with the year 2000 -- it may be that some of the computer systems that have the problem will be gone by then, but everybody thought that about old software that's still around, which is why we have the Y2K problem," said Jones, the author of The Year 2000 Software Problem: Quantifying the Costs and Assessing the Consequences.

 

The makers of Debian GNU/Linux, a volunteer distribution of the Linux flavor of the Unix operating system, say that they have the problem licked.

 

"Before 2038, we must define 'time_t' to be a 64-bit variable instead of a 32-bit one and recompile all programs," said a Debian press release on Y2K compliance. With this task out of the way, the team said that its Unix product will work for another 292,271,023,017-odd years.

 

Sun Microsystems' Solaris operating system is a 32-bit version of Unix. Like the Linux community, the company anticipates that future versions of Solaris will be 2038 compliant.

 

There may be some snafus with recompiling old programs on these systems -- it would be a problem if a program does not make its source code, or computer instruction set, publicly available.

 

Furthermore, in a scenario familiar to Y2K watchers, there is a hidden threat in "embedded" systems, such as those used in medical equipment. In those cases where the code is engineered into the physical hardware, a fix would be difficult, expensive, or impossible.

 

Further, some 2038 worrywarts may also be sweating over 2069.

 

One computing application standard specifies two-digit year notations, just as non-Y2K-compliant machines do. The digits 00 through 68 represent the years 2000 through 2068, while 69 to 99 refer to 1969 to 1999.

 

Thus, any applications using these shortcuts may experience problems in the year 2069.

 

"It's my impression that systems based on Unix tend to encode their dates in the databases using something other than 'Unix standard time,'" Ritchie said.

 

"I wonder how often it is used in databases for things about people, mortgages, credit cards, flight arrival times, and so forth," he said.