248 days seems like a totally arbitrary number, right? Well, consider this:
2^31/24/60/60/100 = 248.5
What if each generator has a counter of some kind that’s represented in the code as a basic integer. Your basic, standard integer is 32 bits long, with one bit used to indicate the sign (+/-), leaving 2^31 possible values.
There are 24 hours in a day, 60 minutes in each hour, and 60 seconds in each minute. If this hypothetical counter increments every 10ms or so, then halfway through day 248 it will reset to 0. It’s obviously impossible for us to know if that’s what’s going on here, but it’s definitely plausible that something like this is the root cause of the glitch.
h/t Piotr Kucharski
Plus 1 to a fellow Guardian reader!
LikeLike
Not a new thing – there was a counter overflow bug in SunOS… 5.5.1, maybe?… which caused any system that stayed up for 248 days to wedge.
LikeLike
Floating point has its problems, too. http://en.wikipedia.org/wiki/Floating_point#Incidents
LikeLike