Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Anatolij Wassermann ([info]awas1952)
@ 2008-03-08 16:38:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Летающие глюки
[info]vitus_wagner@lj в своей реплике по ходу обсуждения любопытной заметки [info]scholar_vit@lj привёл ссылку на замечательный список компьютерных глюков в аэрокосмической технике: (я исправил пару мелких опечаток и проставил между эпизодами разделители)

=============================

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

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

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

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

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

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

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

И ещё коллекция таких глюков:

***

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

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

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

***

Где-то в конце 70-х годов - испытания американской ЗСУ "Сержант Йорк". Для поражения вертолетов ЗСУ была оснащена системой распознавания образов.

Во время испытаний около неё безуспешно кружил вертолет-мишень, которую она так и не смогла распознать. Зато распознала как вертолет вентилятор в туалете, расположенном метрах в 800-х от ЗСУ.

И успешно его поразила.

***

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

***

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

***

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

***

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

***

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

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

***

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

Начали выяснять. Причина оказалась элементарной: ракета снабжена стабилизаторами.

Стабилизаторы нужны, чтобы удерживать ракету передним концов в сторону вектора движения.

При вылете ракеты двигатель не сразу набирал мощность и какой-то момент она двигалась хвостом вперёд - естественно стабилизаторы разворачивали её в "правильном" направлении.

После этого врубался двигатель и ракета бодро летела к ближайшей цели.

=============================

Правда, на мой взгляд последний пример относится уже не к компьютерам, а к механическим методам управления.

В дополнение -- история, случившаяся в конце 1950-х.

В операторе DO 12 I=1,3 вместо запятой набили точку. В результате первая американская ракета, запущенная к Венере, направилась на Нъю-Йорк и была на лету взорвана радиокомандой.

Для тех, кто не имел удовольствия работать на первом сравнительно высокоуровневом языке программирования FORTRAN (программа была именно на нём), небольшое пояснение. Переменные на нём (и его идейных наследниках вроде PL/1 -- не к ночи будь помянут) не нуждаются в особых определениях, а вводятся самим фактом упоминания в тексте. Вышеприведенный оператор в переводе на человеческие слова означает: весь последующий текст до оператора, помеченного числом 12, включительно, повторять, меняя переменную I в пределах от 1 до 3 (с шагом 1 -- по умолчанию). Из-за опечатки получился оператор: переменной DO12I присвоить значение одна целая три десятых и двигаться дальше. Текст до оператора с меткой 12 выполнился однократно, значение переменной I угадать не берусь (тут всё зависит от того, каково оно было на подходе к этому месту.

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

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


(Добавить комментарий)


[info]golosptic@lj
2008-03-08 11:10 (ссылка)
Испытания американского истребителя F-16 проводились, понятное дело, в северном полушарии. На заключительном этапе самолет решили проверить где-то в Латинской Америке, но уже с другой стороны экватора. При переводе самолета в режим автопилота он автоматически развернулся "вверх ногами".

городская легенда
факт не имел места быть

(Ответить) (Ветвь дискуссии)


[info]columb_us@lj
2008-04-10 06:37 (ссылка)
Там половина таких. Про Мертвое море тоже легенда. Подобное поведение было, но на симуляторе, а не реальном самолете.

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

(Ответить) (Уровень выше)


[info]gonchar_oleg@lj
2008-03-08 11:51 (ссылка)
Онотолей, вы жжоте.

(Ответить)


[info]neputsun@lj
2008-03-08 12:33 (ссылка)
Анатолий, да вы просто сегодня завоевали первое место в номинации "Самый изысканный подарок российским женщинам на Восьмое марта"!
А если серьезно, то спасибо большое, замечательная подборка, заслуживающая ссылки в "избранном". В отместку могу вспомнить историю о бравых советских физиках, возможно, вам уже знакомую. Последствия их расчетов, к счастью, не были так колоссальны.
Суть в том, что вот эти конкретные светочи науки были вынуждены все свои важные дела решать в особо крохотной каморке, где и развернуться-то трудно, не говоря уже о том, чтобы как следует по-докторски покурить. Вонища же потом стоит невероятная, комнатка не вентилируется. Ну вот и решили смекалистые наши заказать систему очистки воздуха. Высчитали необходимую производительность (они же теоретики!), приняв во внимание все возможные объемы и степени, и, открыв каталог, пришли к выводу, что более-менее им подойдет прибор под маркой, скажем, БЗДУНЪ-22/256. Послали запрос, а через неделю с удивлением получили ответную депешу, в которой запрашивалось подтверждение, что они хотят именно БЗДУНЪ-22/256. Действительно хотим, и действительно ее, хмуро шлют они обратно. Через две недели им присылают желанную установку - на двух железнодорожных платформах.

(Ответить) (Ветвь дискуссии)


[info]true_kaa@lj
2008-03-08 15:55 (ссылка)
Подумаешь.
В одном НИИ при его образовании было заказано четыреста пантографов.
И получили... четыреста пантографов... устанавливаемых на крышу электропоездов.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]allegecityrat@lj
2008-04-08 10:04 (ссылка)
Алюминий маркируют по химической чистоте. Есть маркировка сколько-то там нулей, а есть - сколько-то там девяток. Отличаются они при этом по количеству примесей на порядок, что ли, уже всё позабыл.
Так вот, один деятель таким образом заказал для НИИ несколько килограм алюминия такой химической чистоты, что один его грамм стоил больше годового бюджета всего НИИ.

(Ответить) (Уровень выше)


(Анонимно)
2008-04-15 09:26 (ссылка)
Вспомнилось, как в одной небольшой страховой фирме подбирали автономную (бензиновую) электростанцию. Когда "все прикинули", то обратили внимание на габариты в таблице спецификаций, т.к. параллельно решался вопрос доставки (в багажнике повезем или "бус" закажем?) - оказалось, что "эта фиговина" не поместиться и в Камаз...
Сели, пересмотрели "расчеты" - одних только электрочайников - 5 шт., копиров, факсов, обогревателей.
Кто-то спросил: "А, вы, когда электричество отключают, сразу все оборудование врубаете?"

(Ответить) (Уровень выше)


[info]zvantsev@lj
2008-03-08 12:41 (ссылка)
Легенда. Нет, не про Фортран, а про ракету. "Направилась на Нью-Йорк", ага.

А при работе с Фортраном (где пробелы не являются грамматическими знаками) у меня была полезная привычка: просматривать список переменных. Этакие "DO" - попадались в каждой второй сабрутине. Особенно при набивке на картах без надпечатки.

Кстати. Лучший клон Фортрана на русском языке назывался Техтран, применялся для станков с ЧПУ. Особенно радовал оператор "ИДИ НА"...

(Ответить)


[info]edzol@lj
2008-03-08 14:26 (ссылка)
Рад, что Вы появились в эфире! Но на ПЛ/1 Вы зря бочку катите! Это только неграмотные программеры писали так. Я, например, запрещал использование типов по умолчанию.

(Ответить) (Ветвь дискуссии)

(Комментарий удалён)

[info]edzol@lj
2008-03-08 14:47 (ссылка)
Там есть такая сволочная штука как метка-пременная! лучшего способа запутать программу трудно представить. Но на нем была успешно написана не одна система!

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]awas1952@lj
2008-03-08 17:13 (ссылка)
EZ> Там есть такая сволочная штука как метка-пременная! лучшего способа запутать программу трудно представить.

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

EZ> Но на нем была успешно написана не одна система!

Главный инструмент программиста -- не язык, а всё-таки мозг.

(Ответить) (Уровень выше)


[info]awas1952@lj
2008-03-08 14:43 (ссылка)
EZ> Рад, что Вы появились в эфире!

Увы, ненадолго. Выдался свободный часок.

EZ> Но на ПЛ/1 Вы зря бочку катите! Это только неграмотные программеры писали так. Я, например, запрещал использование типов по умолчанию.

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

Вообще PL/1 имеет заслуженную репутацию языка, провоцирующего ошибки.

(Ответить) (Уровень выше)


[info]decil@lj
2008-03-08 14:42 (ссылка)
Мой первый науч.рук, Василий Александрович Вишневский, дай ему бог здоровья, рассказывал две похожих истории. Причем все истории у него имели далеко идущие выводы для нас, подрастающих программистов.

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

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

Я не уверен в правдивости приведенной информации, но педагогический эффект был должный :)

(Ответить) (Ветвь дискуссии)


[info]nikolaevn@lj
2008-03-17 19:47 (ссылка)
> испытаний атомной бомбы близ Шпицбергена
Вообще-то, испытания ядерного оружия проводились на Новой Земле, а не на норвежской территории.

(Ответить) (Уровень выше)


[info]columb_us@lj
2008-04-10 06:27 (ссылка)
Про взрывную волну - это хрущевская "кузькина мать". Только было это на Новой земле, и фактическая мощность (50 Мт) была на самом деле вдвое занижена от расчетной (намеренно). Разумеется, никакой остров там не смыло.

Существенное (в три раза) превышение рассчетной мощности из-за ошибки было у американцев при первом взрыве водородной бомбы (Castle Bravo). Но там все гораздо сложнее, чем "вычитание чисел" - то были неучтенные физические эффекты.

(Ответить) (Уровень выше)

О Ваших играх
[info]true_kaa@lj
2008-03-08 16:03 (ссылка)
http://community.livejournal.com/razbor_sv_igry/49547.html
http://community.livejournal.com/razbor_sv_igry/49776.html
http://community.livejournal.com/razbor_sv_igry/49972.html

(Ответить) (Ветвь дискуссии)

Re: О Ваших играх
[info]awas1952@lj
2008-03-08 16:41 (ссылка)
Спасибо. Но Ваш текст, увы, не к месту. Для переписки такого рода я завёл отдельное сообщение на самом верху своего ЖЖ.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: О Ваших играх
[info]true_kaa@lj
2008-03-09 03:38 (ссылка)
То сообщение во френд-ленте не показывается.
Эти два комментария можно удалить.

(Ответить) (Уровень выше)


[info]max_18@lj
2008-03-08 21:50 (ссылка)
Про фортран смеялся точка и запятая на клавиатуре рядом. Наверное специальные клавиатуры нужно разработать для военных программистов чтобы не ошибаться. А то такие перепутывания точек и запятых невесть к чему могут привести.
И к тому же это же только известые нам случаи. А сколько ещё есть неизвестных.
Круто когда от одного символа в программе зависит поведение целого боевого истребителя наверное это страшно)

(Ответить)


[info]arifg@lj
2008-03-10 19:25 (ссылка)
Как сообщает DefenseTech со ссылкой на Associated Press, истребители не сумели преодолеть так называемую «линию перемены дат»

Что, вообще говоря, странно - в американской авиационной навигации испольузется "Zulu" (UTC) время.

(Ответить)


[info]ben_leizer@lj
2008-03-26 07:37 (ссылка)
Еще один перечень любопытный перечень ошибок в коде, четырнадцатилетней давности:
http://dibr.nnov.ru/hf1.php?n=408&d=hf1.html

Разумеется, крылатое "DO 10 I=1.5" включено, но большинства я раньше не видел.

(Ответить) (Ветвь дискуссии)


[info]ben_leizer@lj
2008-03-26 07:38 (ссылка)
Лишнее "перечень", виноват.

(Ответить) (Уровень выше)


[info]1zarabotok@lj
2011-02-27 14:09 (ссылка)
вот так и появляются легенды и слухи...

(Ответить)