Из-за программного бага задержали более 200 авиарейсов: не летайте выше 65535 футов



    Самолёт-разведчик американских ВВС вызвал серьёзный сбой в программном обеспечении центра управления воздушным движением Калифорнии, из-за чего пришлось задержать вылеты сотен гражданских рейсов в нескольких аэропортах юго-западного региона США и внепланово посадить самолёты, которые направлялись в этот регион, сообщает агентство NBC News.

    Хотя официальные агентства не предоставили исчерпывающей информации о причинах сбоя, но неофициальные источники говорят, что дело в новой системе мониторинга трафика, которую установили в некоторых аэропортах Калифорнии и которая ошибочно попыталась предотвратить столкновение самолёта с коммерческими авиарейсами.

    U-2 летел на высоте более 60 000 футов (более 18 км) над уровнем моря и никак не мог причинить проблемы гражданским судам на гораздо более низкой высоте. Он летает над Калифорнией и другими регионами на такой высоте уже десятилетиями, и никогда не было проблем. Но недавно в аэропортах установили новое программное обеспечение для мониторинга полётов в рамках проекта ERAM (En Route Automation Modernization), стоимость проекта составила $2,1 млрд. Скорее всего, новая система ошибочно интерпретировала высоту полёта U-2 и посчитала, что он может повлиять на другие рейсы.

    Есть предположение, что причиной программного сбоя стала возможность U-2 летать на высоте выше 65 535 футов. Впрочем, передатчик U-2 способен сообщать произвольные координаты своей высоты на наземные станции. По умолчанию он запрограммирован на максимальное значение FL600 (60 000 футов), и даже если самолёт летит гораздо выше, они всё равно будет передавать значение FL600.

    Другая версия, что это была какая-то новая модификация самолёта с новым передатчиком. Возможно, он всё-таки передал на базу высоту более 65 535 футов, и новое программное обеспечения ERAM среагировало не лучшим образом. Но тысячам пассажиров, опоздавшим на рейсы, от этого не лучше.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 44
    • +35
      и даже если самолёт летит гораздо выше, они всё равно будет передавать значение FL600.

      Вот это костыли
      • +15
        Это все, скорее всего, из-за секретности. Высоты на которых проводят свои операции военные засекречены, и именно поэтому передатчик останавливается на FL600.
        • +4
          Нет, просто выше 60000 футов неконтролируемое пространство.
          • +3
            Нет, класс E в США.
      • +1
        16 бит (2 октета) выделялось в ПО. Видимо писали тесты, которые должны пройти, а не которые должны проверять отказоустойчивость)
        • +5
          Это они попытались 16 бит сэкономить от 32 битного int-а. Оптимизаторы, однако))
          • 0
            5 старушек — рупь!
            • 0
              Не факт, что у них int изначально был 32 битный ;) М.б. как раз 16 битный, а то и вовсе 8 битный. А потом получилось так, что формат структуры оставили для совместимости :) В общем то обычная практика для долгоиграющих проектов, к которым военные как раз относятся. Помимо этого существуют ещё «зипы» — оборудование, которое должно спокойно хранится несколько десятилетий, и м.б. быстро использовано в качестве замены в случае отказа установленного.
              • 0
                Ну вот там сидели два программиста и обсуждали:
                — Слушай, у нас высота может большая быть сделаем ее 32-битной.
                — Да не, не будет никто так высоко летать, а у нас железка 16-битная. Так что давай делать 16 бит высоту, съэкономим память, и работать побыстрее будет.

                Так и получается потом, что потом самолеты под землю уходят при переполнении интов. :D
          • +31
            Читал о похожей проблеме в израильских ВВС — программное обеспечение самолётов не было расчитано на отрицательные высоты и стабильно падало при полётах над Мёртвым Морем, уровень которого значительно ниже уровня моря.
            • +8
              Старая байка. Но про американцев на учениях в Израиле. Там высота до -400 метров. Местные самолеты хоть и американские, но с переделанной электроникой. И летают на них целыми днями. А вот янки на своих прилетели на учения.
              • 0
                В «Гигабайтах власти» еще примеры были. Достоверность не знаю.
                • +2
                  Я слышал версию, что ПО не падало, а просто самолет переворачивался кверху брюхом на отрицательных высотах :)
                  • +7
                    И задом летал, с отрицательной скоростью :)
                    • 0
                      Все, нашел. Переворота не было, был крэш и ребут. А переворот, как сказали ниже, был из другой оперы: при пересечении экватора.
                      • 0
                        Не потреблял топливо, а вырабатывал.
                        • 0
                          • +2
                            Австралия. Полет нормальный.
                      • 0
                        Похоже это и есть то самое ПО, поскольку сломалось при переполнении uint16, а не на int16.
                      • –5
                        Код писали индусы? :)
                        • +36
                          Товарищей, которые 8-битным счётчиком на установке по радиотерапии убили несколько десятков человек (из-за переполнения подавалась бешенная доза радиации вместо указанной) перевели в авиационный отдел? Они сделали выводы из предыдущей ошибки и больше никогда не используют 8-битные счётчики.
                        • +4
                          В чём проблема использовать нормальные числа? Какие могут быть двухбайтовые целые числа в 2014-м году? Ну что за экономия на спичках?
                          • +15
                            Обратите внимание на новость — «официальные источники молчат, но мы думаем, что дело было так». Вспоминается серия из Южного Парка. «Переселенцам помогали инопланетяне. Не верите? А вы можете предоставить доказательства, что инопланетян там не было? Вот то то же!» Как-то так делаются новости…
                            • 0
                              Учитывая, что самолёт U-2 выпускается уже почти 60 лет, еще неизвестно когда на этом экземпляре последний раз софт меняли.
                              • +1
                                Ну тут проблема не в самолете. На нем ПО не обновляли. Летал он там десятилетиями, а проблема возникла после обновления системы мониторинга на земле.
                                • 0
                                  Та модель, которая летает сейчас, выпущена в начале 80-ых. К тому же, эти самолеты регулярно обновляются
                                • +2
                                  Вот я сегодня схожим вопросом озадачился, когда документация IBM на DB2 сказала мне, что имя администратора базы в линуксе не может быть более 8 символов. В противном случае база даже не поставится.
                                  • 0
                                    Запросто — микроконтроллеры наше всё. Ещё пять лет 16-битные контроллеры широко применялись. И дадже сейчас применяются.
                                    Во-вторых, система могла и 20 лет назад разрабатыватья — оно с авиационной безопасностью свзяано и потому никто не торопится менять.
                                    И самое главное — есть языки программирования, где целое до сих пор 16 бит — вот такой сюрприз.
                                  • 0
                                    Это как в тех случаях когда первые версии F-22 при пересечении экватора переворачивались на спину и не могли из США в Японию пересечь линию дат :)
                                    • +34
                                      А измеряли бы высоту в метрах — не достигли бы такого предела :)
                                      • +13
                                        Угу, 65535 метров хватит для всех! ;)
                                        • –1
                                          Через пару десятков лет и этого будет мало
                                          • +1
                                            Собственно, в этом и был смысл моего предыдущего комментария.
                                      • +1
                                        скорее всего, тут дело не только в ПО, а еще и в протоколе передачи данных — поле высоты всего 16 бит, вот и получили проблемы…
                                        • +10
                                          U-2. Все сходится!
                                          U = Unisgned int
                                          2 = 2bytes
                                          • 0
                                            Не совсем сходится :) Официальное название этой модели — U-2S
                                        • 0
                                          Стоимость проекта 2.1млрд $, но как ни странно, они умудрились допустить программную ошибку практически в самом начале…
                                          • +1
                                            Сто раз твердили — проверяй входные данные, но некоторые очень любят получать по лицу старыми граблями — видать лицо уже приняло форму ручки граблей. Можно ведь было сделать вывод сообщения об ошибке с требованием узнать у пилота — а на какой высоте он сейчас, или перевести работу в ручной режим, а не тупо интерпретировать неправильные значения.

                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.