2010 Rings in Some Y2K-like Problems
Numerous computer systems worldwide had trouble recognizing the year 2010 in dates, causing problems for many users and systems administrators. The problem has been referred to as Y2k.01.
The most serious problems emerged in Germany and Australia where millions of payment cards stopped working. It has also affected text messaging systems, causing the messages on Windows Mobile phones to appear as the year 2016. Symantec enterprise security software, SpamAssassin, SAP printing spools, and Palm smart phones were among other systems reporting problems. In most cases, patches or workarounds have already been deployed or made available.
"The nature of the problem in this case was a miscoding problem that showed up in different places in different ways," said Rob Enderlee, senior industry analyst with the Enderlee Group. "A lot of these things are written well in advance and they just did not test them through the date cycle."
Stupid Programming Tricks
The date problems emerged from several programming inconsistencies or temporary fixes. The most common problem was the year 2010 appearing as 2016. This problem originated in confusion between binary number encoding (BNE) and binary coded decimals (BCD). The numbers 0–9 are consistent in both systems. However, BNE codes the number 10 as 0x0A, while BCD uses 0x10. BNE treats 0x10 as the number 16. Thus, software that spans systems using the different encodings misinterpreted 2010 as 2016.
Another problem, which caused 2010 to appear as 1910, resulted from a Y2K temporary patch that became permanent. The original Y2K problem lay in the many computer systems that used two-digit representations of the year. These systems would have interpreted the year 2000 as 1900. One "temporary" fix was to reprogram the system to add 100 years to a window of dates after 2000. Systems that set this window at 10 years stopped adding 100 years on 1 January 2010.
In other cases, the problem occurred because the developers didn't expect the software version they were working on to still be in wide use after 2010. For example, SpamAssassin had a problem misclassifying some email as spam because of a feature that uses the date to help determine whether an incoming message is spam. The feature is based on the observation that spammers frequently send their messages from future dates so that they stay at the top of the inbox. SpamAssassin had included a rule to flag messages dated after 2010 as spam, but the company released an update six months ago to change the flag to messages dated after 2020.
When in Doubt, Halt
In Germany, the Y2k.01 problem affected 30 percent of smart payment cards—about 30 million cards in total. The banks developed new software for the card readers so that they wouldn't have to replace all the cards.
The problem started when software running on the cards couldn’t recognize the date that card readers were feeding it, said Raymond Wizbowski, marketing manager at Gemalto, which makes the affected payment cards. The readers therefore refused to proceed with the transaction. "This situation can occur in complex software systems, where all the combinatorial test cases can't be covered," he explained.
"Faced with the unknown, the cards are programmed to choose the most secure option (i.e., prevent the transaction) in order to maintain the highest security."
In Australia, Bank of Queensland's Electronic Funds Transfer Point of Sale terminals rushed into 2016 in the new year. The terminals process credit and debit cards and began interpreting each card as expired. A Bank of Queensland spokesperson said a temporary fix was implemented 2 January 2010, and a permanent software update subsequently solved the problem altogether.
The updating system in Symantec's network access control (NAC) software had trouble updating new virus definitions. The NAC software checks to see if companies have the latest software to protect against new malware, and it began interpreting downloads in the new year to be out of date. The interim fix was to time-stamp all updates as of 31 December 2009 with increasing revision numbers. Symantec has since released an automated update to the client for recognizing new malware definitions with the correct date.
SAP had a problem with the date used to determine when to delete printing spool requests. As a result, all new print jobs scheduled for deletion after 2010 were set for 2100.
Palm Pre phones initially weren't synchronizing PC and phone data, and the calendar wouldn’t work at all at the year's end. Palm issued an OS version 184.108.40.206 that fixes the problem.
The date system in Windows Mobile smart phones running on OS 6.1 or 6.5 conflicted with the central text messaging gateway. One workaround is to use the phone’s own clock to stamp incoming messages rather than the gateway.
George Lawton is a freelance technology writer based in Monte Rio, California. Contact him at firstname.lastname@example.org.