Slashdot Mirror


2016 Bug Hits Text Messages, Payment Processing

An anonymous reader writes "It seems some systems are suffering from a Y2K16 bug. When 2009 ticked over to 2010, some Australian EFTPOS machines skipped to the year 2016. Coincidentally, some Windows Mobile users are also having issues with their new year SMSes coming from 2016. What function could cause this kind of error?"

9 of 340 comments (clear)

  1. Why by Anonymous Coward · · Score: 5, Funny

    Uncle Bill decided to do some coding. That's why.

  2. Some kind of... by msauve · · Score: 5, Insightful

    BCD/binary mismatch?

    0x09 = 9 decimal when interpreted as either binary or BCD.

    0x10 = 10 decimal when interpreted as BCD, as 16 when interpreted as binary.

    --
    "National Security is the chief cause of national insecurity." - Celine's First Law
    1. Re:Some kind of... by Anonymous Coward · · Score: 5, Informative

      I don't think you quite have the hang of binary (10 would be 2, not 3).

    2. Re:Some kind of... by msauve · · Score: 5, Informative

      No, I meant exactly what I said. I didn't say 0b01. 0x10 is the hexadecimal notation for "00010000" binary, which is 16 decimal.

      I used 0x10 because that's standard ANSI C (and ECMA-334 C#), and C is what seems to be spoken on /.. 0b00010000 is non-standard (but allowed by some compilers).

      --
      "National Security is the chief cause of national insecurity." - Celine's First Law
  3. Microsoft by sopssa · · Score: 5, Informative

    Seems Microsoft is supplying some code for EFTPOS machines that is common with Windows Mobile, so it's most likely the same bug in both.

  4. 10 hex is 16 decimal by Anonymous Coward · · Score: 5, Informative

    Could be botched string parsing. Could be binary coded decimals interpreted as binary numbers: BCD encodes two decimal digits in the high and low nibbles of a byte. Therefore BCD 10 is 0001 0000 in binary, which is 16 in decimal.

    1. Re:10 hex is 16 decimal by nycguy · · Score: 5, Informative

      This is almost certainly what it is. The year is stored in an SMS message as a two-digit BCD value, according to this spec. (Click on the link for the "timestamp" field.) Some phones must be treating it as a hex field. (Note that most other fields in the SMS message are in hex.)

  5. Official explanation by Anonymous Coward · · Score: 5, Funny

    It's to avoid the world ending in 2012 by skipping straight to 2016. We've left a few years either side of the fateful date as a safety buffer.

  6. * points finger at Duct Tape Programmers by amn108 · · Score: 5, Funny

    Time to quote Joel (from www.joelonsoftware.com):

    Jamie Zawinski is what I would call a duct-tape programmer. And I say that with a great deal of respect. He is the kind of programmer who is hard at work building the future, and making useful things so that people can do stuff. He is the guy you want on your team building go-carts, because he has two favorite tools: duct tape and WD-40. And he will wield them elegantly even as your go-cart is careening down the hill at a mile a minute. This will happen while other programmers are still at the starting line arguing over whether to use titanium or some kind of space-age composite material that Boeing is using in the 787 Dreamliner.

    When you are done, you might have a messy go-cart, but it’ll sure as hell fly.

    Hey, Jamie! Your proprietary date datatype didn't fly! Would you please turn around and fix it?