От Akel
К All
Дата 16.02.2008 14:57:19
Рубрики Байки;

Байки про боевые компы. Уж не знаю, где чушь, а где доля чуши

Когда зависают авианосцы - 9 историй компьютерных багов на суперсовременной военной технике.
[Military bugs]
Раздел: Разное > Истории из жизни

1.

При попытке перегнать истребители F22 «своим ходом» с Гавайских островов на базу ВВС Kadena на японском острове Окинава программный сбой «в навигационном обеспечении» вынудил пилотов развернуться и возвратиться туда, откуда вылетели. Теперь стала известна истинная природа «навигационной аномалии».

Как сообщает DefenseTech со ссылкой на Associated Press, истребители не сумели преодолеть так называемую «линию перемены дат» - условную линию, по разные стороны которой местное время одно и то же (с точностью до часового пояса), но календарные даты различаются на одни сутки. Линия перемены дат проходит по меридиану 180 градусов с отдельными отклонениями.

Перемена дат осуществляется (и вообще имеет смысл) лишь при использовании местного времени. При пересечении линии перемены дат необходимо либо прибавлять, либо вычитать одни сутки – в зависимости от того, в каком направлении осуществляется движение. По всей видимости, этот парадокс Земного шара, осознанный еще участниками экспедиции Магеллана, был позабыт разработчиками F-22 Raptor.

Последствия такой забывчивости оказались весьма ощутимыми. У истребителей в полете, отмечает Defense Tech, вышли из строя топливная и навигационная системы, а также – частично – связь.

Лишь одному пилоту удалось связаться с экспертами разработчика (компании Lockheed Martin). Несколько пилотов попытались перезагрузить ПО истребителя в полете.

«Победить» ошибку не удалось, однако сами истребители и их пилоты уцелели, что в подобной ситуации следует считать несомненной удачей. Возвращение на Гавайские острова потребовало дополнительной дозаправки в воздухе.

Впоследствии «навигационную аномалию» удалось исправить, и F-22 все-таки прибыли на авиабазу назначения.

2.

Фирма Motorola испытывала новый процессор для автопилота на истребителе в Израиле. Все было отлажено. Пилоты на испытаниях отправились «огибать рельеф» с севера до юга Израиля. Истребитель прекрасно пролетел на автопилоте над равнинной частью, над горной частью, над долиной реки Иордан, и приближался к Мёртвому морю. Не долетев до него, неожиданно происходит общий сброс процессора, автопилот выключается на полном ходу, пилоты переходят на ручное управление, и сажают истребитель.

Процессор отправили на доработку и тестирование. Все тесты прошли снова без сбоев. Снова начали реальную проверку. Истребитель пролетел над всеми территориями, но при подлете к Мёртвому морю: общий сброс, выключение автопилота, ручная посадка.

Длительные тесты не могли выявить никаких изъянов. После продолжительных попыток было найдено, что программы автопилота при вычислении параметров управления по глубоко научным секретным формулам производили деление на значение текущей высоты истребителя над уровнем океана. При подлете к Мёртвому морю высота становилась нулевой, и процессор при делении на ноль давал общий сброс. До этого случая никому не приходило в голову, что самолеты могут летать ниже уровня океана...

3.

Где-то в конце 70-х годов - испытания американской ЗСУ "Сержант Йорк". Для поражения вертолетов. ЗСУ была оснащена системой распознавания образов.
Во время испытаний около неё безуспешно кружил вертолет-мишень, которую она так и не смогла распознать. Зато распознала как вертолет вентилятор в туалете, расположенном метрах в 800-х от ЗСУ. И успешно его поразила.

4.

Испытания американского истребителя F-16 проводились, понятное дело, в северном полушарии. На заключительном этапе самолет решили проверить где-то в Латинской Америке, но уже с другой стороны экватора. При переводе самолета в режим автопилота он автоматически развернулся "вверх ногами".

5.

В Афганистане двое наводчиков-наблюдателей (канадцы) подсвечивали цель для наведения на нее бомбы. После сброса бомбы в GPS приемнике закончились батарейки. Расчет их быстро заменил. В результате ракета прилетела не туда. Причина проста. После подачи питания в прибор, переменные, отвечающие за координаты цели, автоматически инициализировались координатами текущего местоположения. Наводчики погибли от близкого разрыва.

6.

На испытаниях Су-24 регулярно случался отказ аппаратуры бомбометания. Причем происходило это только в том случае, если на цель заходил летчик-испытатель Ильюшин. Причина оказалось тоже не сложной. Только он заходил на цель с точностью, превышавшей машинную точностью. Получался "машинный нуль", после чего шел сбой из-за попытки деления на ноль.

7.

Этот пример тоже очень характерен, хотя, строго говоря, он и не относится напрямую к разработке ПО, но демонстирует важность тестирования. Возникла эта проблема, скорее всего, на МБР 15А30, причем уже после постановки ее на боевое дежурство. При пуске, ракета выходила из шахты и взрывалась на высоте нескольких метров над землей. Причина оказалась тоже не самой сложной. Рубашка сопла охлаждается окислителем, после чего он поступает в камеру сгорания. В спешке принятия нового комплекса на вооружение к очередной годовщине, в систему пуска двигателя внесли небольшие улучшения, которые не протестировали должным образом. В результате пироклапан срабатывал с большим запаздыванием. Окислитель не поступал в трубки охлаждения, а жаропрочности сопла хватало только на то, чтобы ракета вышла из шахты.
8.

Причиной взрыва 4 июня 1996 г. ракеты Ариан-5, была программная ошибка. В системе управления ракеты использовалось модифицированное программное обеспечение ранее успешно работавшее на Ариан-4, но Ариан-5 ускорялась быстрее предыдущей модификации, в результате когда на 40 секунде полета одна из вспомогательных подпрограмм попыталась преобразовать длинное целое значение в короткое без проверки величины значения, и то вышло за границы типа, произошло отключение системы управления ракеты, и она была взорвана по команде на самоликвидацию. Прямой (вместе с ракетой-носителем была потерян коммуникационный спутник) и косвенный ущерб от этого программного сбоя был оценен в полмиллиарда долларов.

9.

История о неприятностях ракетного крейсера ВМС США «Иорктаун». Это экспериментальный, так называемый «умный корабль» (smart ship), важнейшие системы жизнеобеспечения которого управляются компьютерами без участия человека. И что немаловажно – под руководством операционной системы Windows NT 4.0. Так вот, однажды вся эта махина, находясь в открытом море, на три без малого часа встала в полный ступор из-за наглухо зависшего программного обеспечения. Причем произошло это из-за совершенно пустяковой оплошности одного из операторов, занимавшегося калибровкой клапанов топливной системы и записавшего в какую-то из ячеек расчетной таблицы нулевое значение. Ну а далее пошла операция деления на этот самый нуль. С подобной ерундой справляется даже самый дешевый калькулятор, однако здесь в терминале оператора система дала ошибку переполнения памяти. Причем ошибка быстро перекинулась на другие компьютеры локальной сети корабля, началась цепная реакция, и по известному принципу домино рухнула вся бортовая система. Которую удалось восстановить и перезагрузить лишь через 2 часа 45 минут, в течение которых здоровенный боевой корабль оставался по сути дела беспомощен и неуправляем


От No477
К Akel (16.02.2008 14:57:19)
Дата 16.02.2008 23:10:21

Re: Байки про...

>Этот пример тоже очень характерен, хотя, строго говоря, он и не относится напрямую к разработке ПО, но демонстирует важность тестирования. Возникла эта проблема, скорее всего, на МБР 15А30, причем уже после постановки ее на боевое дежурство. При пуске, ракета выходила из шахты и взрывалась на высоте нескольких метров над землей. Причина оказалась тоже не самой сложной. Рубашка сопла охлаждается окислителем, после чего он поступает в камеру сгорания. В спешке принятия нового комплекса на вооружение к очередной годовщине, в систему пуска двигателя внесли небольшие улучшения, которые не протестировали должным образом. В результате пироклапан срабатывал с большим запаздыванием. Окислитель не поступал в трубки охлаждения, а жаропрочности сопла хватало только на то, чтобы ракета вышла из шахты.

Я где-то слышал, что стенки двигателя охлаждают горючим, а не окислителем. На 15А30 было по-другому?

Удачи!

От writer123
К Akel (16.02.2008 14:57:19)
Дата 16.02.2008 20:33:02

Re: Байки про...

>На испытаниях Су-24 регулярно случался отказ аппаратуры бомбометания. Причем происходило это только в том случае, если на цель заходил летчик-испытатель Ильюшин. Причина оказалось тоже не сложной. Только он заходил на цель с точностью, превышавшей машинную точностью. Получался "машинный нуль", после чего шел сбой из-за попытки деления на ноль.
Не в первый раз встерчаю эту историю. Видимо, правда.

От SadStar3
К writer123 (16.02.2008 20:33:02)
Дата 19.02.2008 03:22:13

Сомневаюсь. Система управления сама стремиться получить нулевое расхождение. (-)


От tarasv
К SadStar3 (19.02.2008 03:22:13)
Дата 19.02.2008 04:22:27

Re: С чем?


Насколько приходилось читать система делила чтото на косинус курсового угла, у Ильюшина в задании было зайдти на цель с востока вот он и заходил настолько точно что получалось деление на ноль.

Орфографический словарь читал - не помогает :)

От tarasv
К Akel (16.02.2008 14:57:19)
Дата 16.02.2008 18:43:26

Re: Чуши нет :) все истории про самолеты и история про наводчиков реальные


Разве что в деталях кое какие ошибки.

От doctor64
К Akel (16.02.2008 14:57:19)
Дата 16.02.2008 15:48:43

Re: Байки про...

Насколько мне известно:
Обе истории про F-16 правда, но с оговоркой - обе проблемы выявили при наземном тестировании ПО. Жти истории часто упоминают в книгах о тестировании программного обеспечения.
История про Ариан - тоже правда. Причем еще смешнее. В известной мне версии - там было три независимых процессора с независимой памятью, общей была только шина доступа к внешним устройствам. сбой произошел на одном процессоре, мажоритарная система отключила его от управления, но в коде осталась отладочная продцедура и сбойный процессор начал дамп своей памяти для целей отладки, чем надолго занял шину и не дал пройти командам на управление двигателями от работающих процессоров.
Можно вспомнить еще (про самолеты, но гражданские) знаменитый Gimli Glider.
Боинг 767-200 остался над Канадой без топлива по причине ошибки наземного персонала - компютеризированная система управления заправкой не работала, и самолет был заправлен вручную, но в формулу подставили плотность керосина в фунтах на литр. в результате в баки залили вместо 22300 кг керосина 22300 фунтов. В дальнейшем самолет успешно спланировал и приземлился на заброшенной базе ВВС

От SadStar3
К doctor64 (16.02.2008 15:48:43)
Дата 19.02.2008 03:20:10

У них в баках поплавков нет? (-)


От tarasv
К SadStar3 (19.02.2008 03:20:10)
Дата 19.02.2008 04:12:26

Re: Есть но он не работал - там вобще знатный бардак был


767 тогда был новый - двух лет не прошло с первого полета типа. Понятно не все глюки выловлены. Датчик остатка топлива был дублированный и когда один канал выходил из строя то не показывал вобще ничего, лечили техники это отключением неисправного канала. Вылетели с одним работающим каналом, техник сказал об этом пилоту а тот понял что и вчера так летали так что все почти ок. После приземления экипаж сменился и сменщикам тоже сказал про отключенный канал но те вобще поняли что система измерени остатка топлива не работает. В это время техник проверяет самолет и включает отказавгий канал - на индикаторах появляются нули но тут его зовут кудато и он уходит не разобравшись и не сняв пометку с АЗС что тот отключен. Приходит новый экипаж видит нули и отключенный АЗС (на самом деле включенный) - по инструкции лететь нельзя, но видит и подпись техника в журнале за предыдущий полет что вылетели с неработающи топливомером (как новому экипажу кажется а на самом деле с одним работающим каналом) а если техник подписал значит это инструкция врет. Самоль то новый и техникам виднее - инструкции только дописываются в процессе эксплуатации. Ну полетели. И все бы ничего если бы в то время в Канаде не преходили на метрическую систему. Техники запутались в коэффицентах и залили топлива четверть от нужного. Капитан перепроверил рассчет но сам тоже запутался и получил тотже результат что и техники. Ввел его как остаток топлива в расходомер, измеритель остатка хоть и не пашет но остаток можно и по расходомеру смотреть, это совершенно штатный способ. Но в полете топливо кончилось. Слава богу смогли сесть на полосу закрытой авиабазы.

Орфографический словарь читал - не помогает :)

От А.Погорилый
К doctor64 (16.02.2008 15:48:43)
Дата 18.02.2008 19:05:50

Re: Байки про...

>История про Ариан - тоже правда. Причем еще смешнее. В известной мне версии - там было три независимых процессора с независимой памятью, общей была только шина доступа к внешним устройствам. сбой произошел на одном процессоре, мажоритарная система отключила его от управления, но в коде осталась отладочная продцедура и сбойный процессор начал дамп своей памяти для целей отладки, чем надолго занял шину и не дал пройти командам на управление двигателями от работающих процессоров.

Это две разных истории.

Одна про Ариан-5 (переполнение разрядной сетки из-за большего ускорения).

Другая про Ариан-4, где какой-то программист вставил для отладочных целей в программу сброс всего содержимого памяти компьютера в технологический канал связи (на такой-то "секунде полета"). И забыл потом это убрать. В результате при первом старте все 3 процессора занялись этим одновременно, на всех трех сработал watchdog-таймер, что аппаратурой контроля было воспринято как тяжелая авария управляющей ЭВМ. Ракета пошла на самоподрыв. Последующее моделирование показало, что погубила ракету фактически контрольная аппаратура. Если бы не она, процессора, осуществив сброс памяти (в никуда, т.к. к технологическому отладочному разьему ничего в полете не подключено), успели бы вернуться к выполнению обязанностей и старт прошел бы успешно.

От Alexeich
К doctor64 (16.02.2008 15:48:43)
Дата 16.02.2008 22:58:06

Re: Байки про...

>История про Ариан - тоже правда. Причем еще смешнее.

Немного офф-топ, но вспомнилась катастрофа "тяжелого" Ариана в 2002 году. С ракетой все было нормально - грохнулась не из-за компьютера, а из-за разрушения одного из сопел.Занятным был прямой репортаж старта с Куру, который я смотрел по "Евроньюс" глубокой ночью, репортаж закончился и закадровый левитановский голос сказал что пуск успешно завершен. А утром я с удивлением услышал, что ракета таки грохнулась ... буквально через пару секунд после окончания прямого репортажа.

От Бульдог
К Alexeich (16.02.2008 22:58:06)
Дата 18.02.2008 17:02:34

ну тогда и про наши Марсы надо вспомнить... (-)