Slashdot Mirror


Chess.com Has Stopped Working On 32bit iPads After the Site Hit 2^31 Game Sessions (chess.com)

Apple's decision to go all in on 64bit-capable devices, OS and apps has caused some trouble for Chess.com, a popular online website where people go to play chess. Users with a 32bit iPad are unable to play games on the website, according to numerous complaints posted over the weekend and on Monday. Erik, the CEO of Chess.com said in a statement, "Thanks for noticing. Obviously this is embarrassing and I'm sorry about it. As a non-developer I can't really explain how or why this happened, but I can say that we do our best and are sorry when that falls short." Hours later, he had an explanation: The reason that some iOS devices are unable to connect to live chess games is because of a limit in 32bit devices which cannot handle gameIDs above 2,147,483,647. So, literally, once we hit more than 2 billion games, older iOS devices fail to interpret that number! This was obviously an unforeseen bug that was nearly impossible to anticipate and we apologize for the frustration. We are currently working on a fix and should have it resolved within 48 hours.

10 of 271 comments (clear)

  1. nearly impossible to anticipate? by Eunuchswear · · Score: 5, Insightful

    This was obviously an unforeseen bug that was nearly impossible to anticipate

    Only if you're an idiot.

    --
    Watch this Heartland Institute video
    1. Re:nearly impossible to anticipate? by xxxJonBoyxxx · · Score: 5, Insightful

      The website has a "CEO", so yes, I can confirm.

    2. Re:nearly impossible to anticipate? by pz · · Score: 5, Insightful

      Two BILLION chess games?

      I'd have not anticipated that a chess site would become that popular. Yes, it's easy to say that it's an obvious bug, but one has to select a variable size during development. Not everything can be stored in a 64 or 128-bit integer, because that would mean a lot of wasted space. So, would YOU have thought it reasonable to use an unsigned 32-bit integer for the number of chess games? I bet many developers would have.

      The real problem, though, is no one remembered about that choice once the number of chess games crossed some really obvious threshold, like 1 billion. THAT event should have triggered some developer to think, "holy cow, can we even handle that many? What's the limit? Are we in danger of a Y2K problem?"

      But chess games? Two BILLION of them? I'd have thought that would be plenty. Color me very pleasantly surprised.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    3. Re:nearly impossible to anticipate? by NoNonAlphaCharsHere · · Score: 5, Informative

      Huh. I seem to remember a few years back when a certain "News for nerds" website went down for a couple days when the comment ID number overflowed and they had to change the data type in the database...

    4. Re:nearly impossible to anticipate? by AmiMoJo · · Score: 5, Funny

      Was it days? I remember it taking hours to fix, but my memory is barely 7 bits total these days.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  2. All of that for -1 by mi · · Score: 5, Informative

    After the Site Hit 2^31 Game Sessions

    The problem could waited twice longer — giving the 32bit iPads time to break down and die of old age on their own — but somebody wasted an entire bit for the possibility to return -1 somewhere...

    Any time you pick ssize_t over size_t, for example, you are making the same decision...

    --
    In Soviet Washington the swamp drains you.
    1. Re:All of that for -1 by Gravis+Zero · · Score: 5, Funny

      Hey, I was born unsigned but my parents had the doctor make me signed by modifying my most significant bit. I can't help but be negative about the whole thing but that's because I'm signed. ;)

      --
      Anons need not reply. Questions end with a question mark.
  3. Russians by 110010001000 · · Score: 5, Funny

    How do you know it isn't the Russians?

  4. "32bit device cant handle IDs above 2,147,483,647" by JoeyRox · · Score: 5, Insightful

    That's like saying 8-bit processors can't handle (signed) numbers above 128. The processors handle them fine. The programmers on the other hand...

  5. Re:Obligatory Answer by D.McG. · · Score: 5, Insightful

    I guarantee you that it's the same source code that just declares the variable as a "long" which is 4 bytes when compiled for 32-bit devices and 8 bytes when compiled for 64-bit devices. They should have used "uint64_t" which would have taken away the ambiguity and worked everywhere. It's as simple as that.
    https://developer.apple.com/li...