PDA

View Full Version : Software flaw in Boeing Dreamliners knocks out electrical power.


Sammyboy RSS Feed
05-05-2015, 05:30 AM
An honorable member of the Coffee Shop Has Just Posted the Following:

Dreamliners are simply not safe. Who knows how many and what sort of hidden software flaws are there on this model? They can't even catch a simple flaw as an integer overflow. LOL!

Reboot Your Dreamliner Every 248 Days To Avoid Integer Overflow (http://www.i-programmer.info/news/149-security/8548-reboot-your-dreamliner-every-248-days-to-avoid-integer-overflow.html)

You may be used to rebooting a server every so often to ensure that it doesn't crash because of some resource problem, but what about a modern jet airliner like the Boeing 787?

http://www.i-programmer.info/images/stories/News/2015/May/A/dreamliner1.jpg

The inevitable creep of software into engineering brings with it the problem of bugs. Embedded computer system engineers have a long history of trying to find ways of making software provably correct. Languages used for process control tend to be single-tasking as do their operating systems, and there are usually lots of hardware checks to make sure that nothing serious could go wrong.

This makes a recent directive from the US Federal Aviation Administration all the more shocking.

Basically it says that all Boeing 787 Dreamliners have to be switched off every 248 days. If they are not reset then the generator control units GCUs will go into failsafe mode and the plane will lose all electrical power.

Why exactly?

To quote the FAA directive:

https://www.federalregister.gov/arti...pany-airplanes (https://www.federalregister.gov/articles/2015/05/01/2015-10066/airworthiness-directives-the-boeing-company-airplanes)

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.

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.
http://www.i-programmer.info/images/stories/News/2015/April/A/odometer.jpg
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.

Perhaps the new overflow detection system from MIT, see MIT Finds Overflow Bugs, would have pointed it out and then the programmers could have implemented a test and a safe clock reset routine which is the best that could be hoped for.

Until there is a patch for the problem all Dreamliners have to be rebooted before the 248 day period is up. Apparently if the worse does happen and the GCUs overflow and switch off the power then the plane should have enough backup power from a lithium-ion battery for about 6 seconds while a ram air turbine deploys for emergency power generation. So, with luck, this isn't a bug that could cause planes to fall out of the sky.

One interesting fact is that the FAA claim that it will take about one hour to reboot the GCUs - so there clearly isn't a reset button.

It is estimated that the Airbus A380, comparable in complexity to the Dreamliner, has more than 100 million lines of code.


Click here to view the whole thread at www.sammyboy.com (http://singsupplies.com/showthread.php?206081-Software-flaw-in-Boeing-Dreamliners-knocks-out-electrical-power&goto=newpost).