Zrestartuj swojego Boeinga 787, bo jak nie, to może się nagle wyłączyć w locie

dodał 1 maja 2015 o 14:53 w kategorii Błędy  z tagami:
Zrestartuj swojego Boeinga 787, bo jak nie, to może się nagle wyłączyć w locie

Wszystkich posiadaczy Boeingów 787 informujemy, że muszą najrzadziej raz na 248 dni restartować sterowniki generatorów prądu. Jeśli tego nie zrobią, to samolot może nagle stracić zasilanie w prąd przemienny.

Błędy w oprogramowaniu mają to do siebie, że łatwo je popełnić, a trudno zlokalizować. Czasem możliwe jest to dopiero w trakcie długotrwałych testów. Wygląda na to, ze również taki przypadek miał miejsce w związku z oprogramowaniem Boeinga 787.

Restart albo wyłączenie

Federalna Administracja Lotnictwa, organ regulujący lotnictwo cywilne w USA, wydała właśnie komunikat, w którym informuje o poważnym niebezpieczeństwie związanym z eksploatacją nowoczesnego samolotu Boeing 787. Testy samolotu wykazały, że w oprogramowaniu sterującym pracą generatorów prądu znajduje się istotny błąd. Bliżej niezidentyfikowany licznik w oprogramowaniu sterowników po 248 dniach ciągłej pracy zostaje przepełniony i powoduje zatrzymanie generatora. Jeśli wszystkie cztery sterowniki zostały włączone w tym samym momencie i przez 248 pracowały bez przerwy, to wszystkie mogą się jednocześnie wyłączyć, powodując całkowite odcięcie zasilania w prąd przemienny w całym samolocie.

Dlaczego akurat 248 dni? Prawdopodobnie wartość ta wynika z maksymalnej liczby, którą da się zapisać w rejestrze 32-bitowym, podzielonej przez ilość setnych części sekundy w ciągu jednego dnia. (2^31) / (86400 * 100) = 248.55134.

787

787

Co najważniejsze, do odcięcia zasilania może dość w dowolnym momencie – w tym również w trakcie lotu samolotu. Jako metodę zapobiegania temu problemowi FAA rekomenduje okresowe restartowanie sterowników w celu wyzerowania licznika. Firma Boeing pracuje nad aktualizacją oprogramowania, lecz zajmie jej to trochę czasu – nowa wersja musi zostać odpowiednio przetestowana. Zanim zatem wsiądziecie do 787 zapytajcie pilotów, czy zapytali mechaników, kiedy ostatnio restartowali sterowniki…

Restart uniwersalnym rozwiązaniem części błędów

Podobna rekomendację by restartować odpowiednie urządzenie w celu uniknięcia poważnego w skutkach błędu znamy już z historii. 25 lutego 1991 roku bateria rakiet Patriot chroniąca bazę wojskową w Dharan w Arabii Saudyjskiej nie przechwyciła irackiego Scuda, który spadł na koszary amerykańskiej armii i zabił 28 żołnierzy. W oprogramowaniu systemu śledzenia rakiet przeciwnika był błąd wynikający z zaokrąglenia operacji na liczbach zmiennoprzecinkowych. Czas od startu systemu był liczony jako wielokrotność 1/10 sekundy, obliczane w oparciu o wartość 24-bitową. Powodowało to, że każda 1/10 sekundy była tak naprawdę obcinana o 0.000000095 sekundy. W skali 100 godzin ciągłego działania komputera prowadziło to do błędu zegara wynoszącego 0,34 sekundy. Czy ta skala błędu była istotna? Dla 28 żołnierzy USA nawet bardzo. Rakieta Scud przemieszcza się z prędkością 1646 m/s, na skutek czego nierestartowana bateria Patriot po prostu jej nie zauważyła, ponieważ szukała jej w innym miejscu. Co gorsza błąd popełniono tylko w jednym miejscu kodu, dzięki czemu wartości obliczone błędnie były zestawiane z wartościami obliczonymi prawidłowo, uniemożliwiając skuteczne zestrzelenie Scuda. Co prawda wojsko wiedziało już od około doby o problemie (wykrytym przez Izrael), ale nie zdążyło wdrożyć procedur naprawczych.

Z kolei inny błąd w operacjach na rejestrach doprowadził do katastrofy rakiety Ariane 5 – ale o tym musicie już poczytać sami. My tymczasem lecimy restartować służbowego Boeinga.