I have recently returned from a short trip to the UK. I flew both ways on what appeared to be a relatively new Boeing 777 courtesy of United Airlines. As is now common place on trans-Atlantic wide-body aircraft, my seat came with its own in-flight entertainment system. After I took my seat to fly to London, I was a little surprised to see that the in-flight entertainment system was suddenly rebooted. How did I know this? Well there was cute Linux penguin in the top left hand corner, plus I (and the rest of the plane) was treated to the always delightful task of watching hundreds of lines of startup script scrolling across the screen. After a minute or two the reboot came to an end and I was presented with the now standard touch screen user interface.This should have given me a hint that the in-flight entertainment system wasn’t the most stable of applications.
Now flights from the east coast of the USA to Europe tend to be night flights, and this flight was no exception. Being a seasoned traveler I have my trans-Atlantic night flight routine down pat. Get settled in, have something to eat, put on the noise cancelling headphones, select a classical music channel and then try and sleep for the rest of the flight. I followed my routine, and after selecting the appropriate music channel, I selected the volume control icon. This resulted in a pop-up window from which I adjusted the volume to something reasonable. I then made the fateful mistake. Rather than exiting the volume adjust window, I simply hit the ‘on/off’ button. This of course doesn’t turn the system off, it merely blanks the display. I then settled in for my nap. Several hours later, I woke up and wondered how far into the flight we were and thus decided to take a look at the real-time route map. Accordingly I turned the display ‘on’ and was rewarded with what I expected to see, namely the volume control screen. A photograph is shown below:
When I touched the Back button, nothing happened. Hmmm thought I, has my system died? Answer – no. I could still adjust the volume, and I could still mute and un-mute the audio. I could also turn the system ‘on’ and ‘off’. Clearly the problem was that there was no ‘back’ associated with the Back button. Needless to say, United Airlines wasn’t going to reboot the entire system so that I could experiment some more, plus I was tired. Anyway I resolved to experiment some more on the return flight.
Thus a week later I’m on a Boeing 777 with the same in flight entertainment system. I brought up the volume control page and did nothing. After about 30 seconds, the pop-up window auto cleared. This was the clue I needed. I thus brought up the volume control page again and immediately turned the unit ‘off’ and then a few seconds later ‘on’. When I did this the back button worked correctly. I repeated the exercise a few more times, and it always worked. I then repeated the exercise, but this time I waited longer than the screen timeout period. Voila – lockup. Clearly this was a case where there was a gaping hole in the state machine that was driving the user interface. At this point I found some interesting thoughts crossing my mind:
- Idiot. Now you can’t watch any movies.
- I bet the designer didn’t use a formal state machine tool such as visualSTATE, or QP
- Whenever there are two distinct ways of exiting a state (in this case, user action or the passage of time), life gets complicated
- Preserving state across a ‘power down’ is always difficult
- I hope the guy that wrote the in-flight entertainment system had nothing to do with the flight control systems on the plane!
Anyway if you find yourself on a plane with an in-flight entertainment system in the near future, see if you too can crash the system – and let us know how you did it.
P.S. I woke up this morning to read that a computer ‘glitch’ effectively grounded United Airlines yesterday. See this for thoughts on United’s computer system.


I think we should set up SPUNK – society for the protection of untested kit – and nominate Nigel as our Great Satan….
A month ago we were flying trans-atlantic on triple 7s… we too witnessed a reboot of the flight entertainment system when movies and such would not start properly for quite a few people. Also, on another flight, mine was having a strange audio issue where the sound was all garbled. When inquiring about it, the flight attendant was able to reset my screen, which went back to normal after a few mins.
I’m a flight attendant for the new United and system reboots are common. These systems are not very well tested in my opinion, specially under load. On 777 were talking at possibly 300 people all going at it: and not alll movies, but games and music too. Although, I have to admit that FULL system reboot have happening in less frequency. The system also supports resetting individual seats, and that usually fixes most passenger’s issues.
And, NO, these are not the same folks that program the flight system. The entertainment system is not connected to the flight controls.
I have always been fascinated by how poorly tested much of the consumer-facing software is, as it is not uncommon to find trivial ways to break them, or at least make behave strangely. I realize that this is very much due to the fact that “user != purchaser”.
But still. Is there no testing done whatsoever? I recall that one of the best things we did to a product i worked on was to set up automated “raving monkey-tests”, where the software would be fed random user input at a decent clip. Within two weeks we managed to pin down quite a few crashes, hangs and interface lockups, even really obscure ones such as managing to “click” in two different places within just two frames.
hpro:
Great minds must think alike! QA at a previous company would run what I called the “Epileptic Monkey” tests on our printer controllers. Stuff that no sane person would ever do, maybe COULDN’T ever do, we had to handle. As much as I hated those tests, I can’t deny that my code was much better for it.
I wonder who made the IFE
I wondered that as well. Alas I could find no indication of who the manufacturer was.
United uses Panasonic.
The Panasonic system is famous in the airline industry for this activity. However they are the only game in town for this size of aircraft.
LiveTV only does smaller aircraft. Not the 777.