FAA finds Boeing 787s could lose control in mid-air due to Integer overflow bug, orders reboot every 248 days
Imagine you are travelling in a Boeing 787s from New York to Washington DC and suddenly the Captain announces on PA that they have lost control of the plane due to a software bug. The situation could produce horrific results and even result in fatalities.
The Federal Aviation Administration (FAA) issued a warning about Boeing’s 787 Dreamliner, saying that a software glitch in the jets’ systems could suddenly shut all electrical power to the plane mid-flight, causing pilots to lose control.
The directive was issued after FAA’s testing revealed that Boeing 787s could lose all AC electrical power and revert to failsafe mode, after being continuously powered for 248 days. The failsafe mode could make all four generators aboard the 787 go offline. Such an incident happening mid-air could possibly mean a gigantic catastrophe because without power the pilot could lose control of the 787s.
The FAA directive says,
“We are issuing this AD [Airworthiness Directive] to prevent loss of all AC electrical power, which could result in loss of control of the aeroplane. This condition is caused by a software counter internal to the GCUs that will overflow after 248 days of continuous power. We are issuing this AD to prevent loss of all AC electrical power, which could result in loss of control of the airplane.”
The i-Programmer explains the Integer Overflow bug as below
“A simple guess suggests the the problem is a signed 32-bit overflow as 231 is the number of seconds in 248 days multiplied by 100, i.e. a counter in hundredths of of a second. So, the problem is a simple classical overflow. You would think that this is something that could have been spotted by formal methods, but think for a moment how are you going to implement this sort of counter?
Your options are to increase the number of bits used, which puts off the overflow, or you could work with infinite precision arithmetic, which would slowly use up the available memory and finally bring the system down.”
So the only workable solution, till the patch to address the bug, to keep the Boeing 787s afloat without any accident is to reboot the Dreamliners every 248 days.