Y2K38 Bug

As we all are famailiar with the millenium bug Y2K i.e. the ‘Year 2000 Software Problem’. Y2K was the major problem to the software industry in that year. Because many systems were using last two digits of the year (like 97, 98, 99 etc.) for some date and time related processing, everyone was worried about the time 12:00:00 a.m. on or after 1 January 2000 because at that time, year 2000 and year 1900 would be executed as same.

Now, after that problem, there is another software bug ahead which needs a large attention towards it. The problem is said to be executed on Tuesday, 19th January 2038 and when the time will reach at 03:14:07 a.m. Many systems would fail to work after this time. Time after this moment will be stored automatically as negetive number and these systems will show the time of year 1901 rather than year 2038. Scientists and engineers called it ‘Y2K38 bug’. The systems and the softwares, which store their system time as signed 32 bit integer, would be affected by this problem. Many 32 bit systems, like Unix systems, store and manipulate the time in 32 bit binary format, and for this reason, it is also called as ’Unix Millenium Bug’. These systems use a data type of C language ‘time_t’ to store and display the time units. The ‘time_t’ is an integer data type and it stores the number of seconds since 12:00:00 a.m, January 1, 1970. Thus, on the date 1 Jan 1970 at 12:00:00 a.m. the value of this data type (time_t) was stored as 0. On the same date, at time 12:00:01 a.m. this value was 1. Furthermore, at time 12:01:00 a.m. this value was 60 (i.e. no. of seconds). Similarly, on January 2, 1970 at 12:00:00 a.m. the value stored was 3600. Moving on to its value on 19 January, 2038 as the moment reaches to 03:14:07 a.m. , the value of ’time_t’ will be ‘2147483647′ which was the highest value of 32 bit signed binary number. And just after one second, IT world will face this huge disaster. Value to time_t will start to decrease and the time shown by the systems will be 08:45:52 p.m. Friday December 13th, 1901. The problem will be more evident from the following figure.

Resources: Year 2038 Problem : Unix Millenium Bug