Possible fix for: Reboot Your Dreamliner Every 248 Days To Avoid Integer Overflow

in programming •  6 years ago 

So I saw this story:

Reboot Your Dreamliner Every 248 Days To Avoid Integer Overflow

And I came up with something. Let me know if I'm missing something fundamental here.

Maybe I'm missing something fundamental here, but if they didn't want to upgrade the systems to 64-bit, couldn't you do the following:

When the counter reaches max-int, increment a new counter (let's name it bigCounter), and reset the counter to zero.
When checking the difference in time from a timestamp after the counter-reset (meaning the timestamp for bigCounter is different now), check the difference between the timestamp's counter value and maxint, and then:

if (maxint - counter > difference)
      return counter + difference
else 
    increment the returned bigCounter difference 
    return maxint - difference

Then convert the returned value (counterDiff and bigCounterDiff) in seconds and 248-day increments back to days/hours/minutes (presumably you'd also have a function that returns the difference between the timestamp's bigCounter value too) to check against critical functions.

I realize I'm simplifying here, and it's probably several million dollars to fix, using the above, what could be basically fixed by upgrading to 64-bit architecture, which probably needs to be done anyway.

Thoughts

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Hello! Your post has been resteemed and upvoted by @ilovecoding because we love coding! Keep up good work! Consider upvoting this comment to support the @ilovecoding and increase your future rewards! ^_^ Steem On!

Reply !stop to disable the comment. Thanks!