3 ms·
Time-based bugs are a nightmare to debug but in my opinion the far more insidious side to them is that, even once you've found the bug, there's an easy workarou
by asymptotic 16y ago
Time-based bugs are a nightmare to debug but in my opinion the far more insidious side to them is that, even once you've found the bug, there's an easy workaround - just reboot the box! Papering over problems is asking for disaster, as the US armed forces found out:
Patriot Missile Software Problem
http://sydney.edu.au/engineering/it/~alum/patriot_bug.html http://sydney.edu.au/engineering/it/~alum/patriot_bug.html
"Ironically, Israeli forces had noticed the anomaly in the Patriot’s range gate’s predictions in early February 1991, and informed the U.S. Army of the problem. They told the Army that the Patriots suffered a 20% targeting inaccuracy after continuous operation for 8 hours.
Army officials presumed that Patriot users were not running the systems for longer than 8 hours at a time. They suggested if they would be running for continuous periods, they were rebooted regularly (which took around 1 minute and would reset the system clock to zero)."
This is where I part company with the author, when he says:
"If a particular failure happens twice a year in thousands or even millions of runs in that period, you’d be excused if you attributed that to 'the alignment of the planets' and simply went on your merry way."
No. No a thousand times. Whenever you find a problem, any problem, you owe it to yourself to dig until you find the actual cause. If you don't find the cause, I guarantee the cause isn't magically going to become "cosmic rays", and rest assured the problem will come back to haunt you when it combines with other "random" issues in a cataclysmic failure; fate is funny that way.