Космическая ошибка: $370 000 000 за Integer overflow

Страницы: 1 2 3 4  ОТВЕТИТЬ НОВАЯ ТЕМА
Zlodey339 27 июл 2020 в 14:45
Ярила  •  На сайте 9 лет
6
Цитата
Авария при запуске привлекла внимание общественности, политиков и руководителей организаций к высоким рискам, связанным с использованием сложных вычислительных систем, что способствовало увеличению инвестирования в исследования

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



А кто-нибудь может объяснить, почему тополя наши с огромной массой уходят в небо за доли секунды и могут долететь до другого континента за несколько минут. ну, то есть ускорение там дохера джи, а ракеты, которые выводят спутник на орбиту, без человек, летят так медленно?


Стартовая масса тополя-м 47,5 тонн. Неужели на такую ракету нельзя повесить спутник массой тонну? Уж очень быстро эти тополя в небо улетают.

Это сообщение отредактировал Zlodey339 - 27 июл 2020 в 14:53
Edge79 27 июл 2020 в 14:48
Сам по себе мальчик  •  На сайте 15 лет
2
Сейчас яповские ЭХсперты по НАСА объяснят подробно кто там и в чем проебался))
Моглик 27 июл 2020 в 14:49
Балагур  •  На сайте 6 лет
10
Цитата (Down @ 27.07.2020 - 14:35)
Цитата
Это было их вполне сознательным решением добавить надлежащую защиту к четырем переменным, а три — включая BH — оставить незащищенными. Основанием для такого решения была уверенность в том, что для этих трех переменных возникновение ситуации переполнения невозможно в принципе.

это - не основание, а проёб называется

ты хоть читал? На Аир4 под которую точили эту систему 100 запусков без косяков. И все работало. Какой-то умник решил это же ПО залить на Аир5 ... ВОТ ГДЕ КОСЯК... у Аир5 другая траектория, поэтому система выхватила Исключение.

У меня к коллегам вопросов нет. У меня как всегда вопрос к умному руководству проектом gigi.gif

Sхвостом 27 июл 2020 в 14:52
Ярила  •  На сайте 9 лет
0
$370 000 000 фух копейки Par9
poqx 27 июл 2020 в 14:56
ви-ip  •  На сайте 11 лет
1
Цитата (ipv4 @ 27.07.2020 - 23:43)

Это другая история про канадских (кажется) пилотов, которые в расчётах перепутали галлоны с литрами (или с тоннами, не помню вжо), недозаправили боинг и потом героически сажали почти неуправляемую, в силу отсутствия горючки, неработающей гидравлики и т.п., дуру. )))

пилоты пилотируют , а заправляют заправщики .
все несколько сложнее , чем на автомобиле.
и кто первым расскажет зачем RAT на 763 ?

Это сообщение отредактировал poqx - 27 июл 2020 в 14:56
Strangerr 27 июл 2020 в 14:58
Tanstaafl  •  На сайте 12 лет
0
Цитата (ipv4 @ 27.07.2020 - 14:41)
Цитата (Down @ 27.07.2020 - 14:35)
Цитата
Это было их вполне сознательным решением добавить надлежащую защиту к четырем переменным, а три — включая BH — оставить незащищенными. Основанием для такого решения была уверенность в том, что для этих трех переменных возникновение ситуации переполнения невозможно в принципе.

это - не основание, а проёб называется

Основание. В статье всё понятно разложено: защита убиралась везде, где можно, поскольку ресурсы вычислительной системы были ограничены. Таково было ТЗ.

Что ж там за проц был, типа 4004 что ли, что так ограничены ресурсы системы?
ipv4 27 июл 2020 в 15:23
Ярила  •  На сайте 16 лет
2
Цитата (poqx @ 27.07.2020 - 14:56)
Цитата (ipv4 @ 27.07.2020 - 23:43)

Это другая история про канадских (кажется) пилотов, которые в расчётах перепутали галлоны с литрами (или с тоннами, не помню вжо), недозаправили боинг и потом героически сажали почти неуправляемую, в силу отсутствия горючки, неработающей гидравлики и т.п., дуру. )))

пилоты пилотируют , а заправляют заправщики .
все несколько сложнее , чем на автомобиле.
и кто первым расскажет зачем RAT на 763 ?

Ок. Я не лётчик и не работник аэропорта. Но факт остаётся фактом, даже на вики есть. И причина - та самая: недозаправили, поскольку 1 литр не равен 1 галлону. )))

P.S. И да, я всё правильно помню: в вычислениях ошибся таки пилот.

Это сообщение отредактировал ipv4 - 27 июл 2020 в 15:25
akmaks 27 июл 2020 в 15:25
Ярила  •  На сайте 15 лет
1
Цитата (tag60 @ 27.07.2020 - 15:41)
Цитата
нужно хорошо знать язык Ада.

Если бы эту тётеньку звали Рая, всё было бы хорошо.

Это не "ротовой отросток женщины", а язык программирования... shum_lol.gif
ipv4 27 июл 2020 в 15:33
Ярила  •  На сайте 16 лет
2
Цитата (akmaks @ 27.07.2020 - 15:25)
Цитата (tag60 @ 27.07.2020 - 15:41)
Цитата
нужно хорошо знать язык Ада.

Если бы эту тётеньку звали Рая, всё было бы хорошо.

Это не "ротовой отросток женщины", а язык программирования... shum_lol.gif

Хм.... Вы слишком т... серьёзны, сами себя в зеркале не боитесь? )))
"язык ада"
"язык рая"
Щютка, ога! )))

Это сообщение отредактировал ipv4 - 27 июл 2020 в 15:34
CLer 27 июл 2020 в 15:52
Ярила  •  На сайте 13 лет
3
не Ада, а Ада95! изучение программирования на факультете информатики университета Штуттгарт начинался с этого языка - на факультете ходила такая байка, что дублирование системы привело к катастрофе...

была запрограммирована рутина для машины подхвата "эй компьютер 1, ты отвечаешь за полёт? да? хорошо, тогда я отключаюсь". для главного компьютера рутина была изменена на "копрьютер 2" - если одна машина не отвечала на запрос, вторая перенимала обязанности.

после старта обе машины одновременно спросили - ты главный? хорошо, я отрубаюсь! и отключились обе на долю секунды - исправить ситуацию уже не было возможным! так нам рассказал это все проф в унике Штуттгарт, факультет информатики, 2002 год
nonexchange 27 июл 2020 в 16:11
Весельчак  •  На сайте 15 лет
1
Грамотные преподаватели программирования всегда говорят, что в коде не должно быть никаких чисел, кроме 0, 1 и -1. Всё остальное выносится в константы.

А для проверки за программером кроме тестировщиков ещё надо было сажать пару программеров, которые бы анализировали код и писали ежедневный отчет по этому анализу. Тогда можно было и не делать 2 компа и 2 блока, хватило бы одного, но надежного
и7ветер 27 июл 2020 в 16:31
Ярила  •  На сайте 12 лет
3
Цитата (Down @ 27.07.2020 - 14:35)
Цитата
Это было их вполне сознательным решением добавить надлежащую защиту к четырем переменным, а три — включая BH — оставить незащищенными. Основанием для такого решения была уверенность в том, что для этих трех переменных возникновение ситуации переполнения невозможно в принципе.

это - не основание, а проёб называется

Нет, это не проеб, это называется экономия. Использовано поменьше программеров, квалификацией пониже. На тестирование не выделено ни времени, ни средств. Так что часть функций вообще не проверяли. Ну и в проекте всегда есть человек, который представляет его целиком. И видимо этот человек, работавший над Ариан 4, не был приглашен хотя бы для консультаций, в следующий проект. Так бывает, когда денежек жалка...
tag60 27 июл 2020 в 16:34
Хохмач  •  На сайте 13 лет
4
Цитата
Цитата (tag60 @ 27.07.2020 - 15:41)
Цитата
нужно хорошо знать язык Ада.

Если бы эту тётеньку звали Рая, всё было бы хорошо.

Это не "ротовой отросток женщины", а язык программирования...


Язык программирования Ада назван в честь Августы Ады Байрон (графини Лавлейс и дочери английского поэта лорда Байрона), вошедшей в историю компьютерной техники как первый программист.
skyline0502 27 июл 2020 в 16:51
Ярила  •  На сайте 12 лет
2
Надо было просто Ctrl+Z нажать)

Космическая ошибка: $370 000 000 за Integer overflow
ss1971 27 июл 2020 в 17:06
Ярила  •  На сайте 10 лет
6
блин а как же эта хвалёная ада так растопырилась? язык заточенный под управление устройствами реалтайм... я то думал там какие нибудь параллельные шины данных мультидоступные, данные с которых проверяют и анализируют и сверяют между собой многочисленные и по разному написанные модули на разных процессорах и на основе арбитража формируют команды исполнительным контроллерам...

а там какойто паскаль нахуй получил halt сложил лапки и помер а в шину погнал отладочную информацию а на той стороне не котроллер оказался а блядь тупорылый ЦАП и закрутил что попало куда попало. вот так ада... да виндовс горбатый ей фору на порядок даст.
SashKaRat 27 июл 2020 в 17:09
пршлцы  •  На сайте 10 лет
0
Поэтому существуют специальные документы, которые описывают, как писать на том или ином языке
например

https://ntrs.nasa.gov/search.jsp?R=19950022400

или

https://www.misra.org.uk/Activities/MISRAC/...60/Default.aspx

И их стоит придерживаться.
Баннер 27 июл 2020 в 17:57
Ярила  •  На сайте 14 лет
7
Истории о сбоях программного обеспечения военной техники

Истребители F-22 не смогли пересечь 180 меридиан

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

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

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

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

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

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

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

Об ошибках деления на ноль

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

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

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

Системы распознавания, как это было в 70-х


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

F-16 вверх ногами

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

Драматическая переинициализация

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

Летчик Ильюшин

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

Недотестировали

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

Правильно выбирайте типы данных

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

И снова деление на ноль

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

© orator.ru
Daimond1984 27 июл 2020 в 17:59
Ярила  •  На сайте 11 лет
3
лихо конечно живем, что в этом посте, что на новых боингах, кто то где то допустил ошибку в коде и пдц, кучи бабок и человеческие жизни.
KunaTakker 27 июл 2020 в 18:22
Хохмач  •  На сайте 14 лет
1
Цитата (nonexchange @ 27.07.2020 - 15:11)
Грамотные преподаватели программирования всегда говорят, что в коде не должно быть никаких чисел, кроме 0, 1 и -1. Всё остальное выносится в константы.

А для проверки за программером кроме тестировщиков ещё надо было сажать пару программеров, которые бы анализировали код и писали ежедневный отчет по этому анализу. Тогда можно было и не делать 2 компа и 2 блока, хватило бы одного, но надежного

В программе всегда есть еще одна ошибка (С)
sergeantGY 27 июл 2020 в 18:26
Пистолеро  •  На сайте 16 лет
1
Цитата (schweps2 @ 27.07.2020 - 14:34)
Кто-то получил по жопке..

От программиста всем прувет :)

надо было хотя бы long засандалить вместо int rulez.gif
ла-ша-ры rulez.gif

ПЫ-СЫ: java и малёк C++

Это сообщение отредактировал sergeantGY - 27 июл 2020 в 18:27
rm2811 27 июл 2020 в 18:26
Ярила  •  На сайте 16 лет
2
Уже сказали, что "аунасфсëхужыыы!!! "?

Размещено через приложение ЯПлакалъ
Drts 27 июл 2020 в 18:30
Юморист  •  На сайте 14 лет
2
Цитата (Zlodey339 @ 27.07.2020 - 14:45)
Цитата
Авария при запуске привлекла внимание общественности, политиков и руководителей организаций к высоким рискам, связанным с использованием сложных вычислительных систем, что способствовало увеличению инвестирования в исследования

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



А кто-нибудь может объяснить, почему тополя наши с огромной массой уходят в небо за доли секунды и могут долететь до другого континента за несколько минут. ну, то есть ускорение там дохера джи, а ракеты, которые выводят спутник на орбиту, без человек, летят так медленно?


Стартовая масса тополя-м 47,5 тонн. Неужели на такую ракету нельзя повесить спутник массой тонну? Уж очень быстро эти тополя в небо улетают.

просто улететь в небо недостаточно,
тополь обратно падает, для того он и сделан,
а чтобы остаться в небе нужно чуток больше Δ v

грубо, чтобы сравнять перигей с апогеем, надо в несколько раз больше Δ v (а соответственно тяги/топлива) чем, чтобы достичь этого апогея

KSP поиграй,
во многом сам разберешься, что касается небесной механики
sertycat 27 июл 2020 в 18:40
рожденный в СССР  •  На сайте 15 лет
10
А либерально - навальное гавно притихло. 173 Пользователей читают эту тему но комментариев всего на полторы странички. Если бы что то подобное случилось на Байконуре вот тут то бы гавно и поперло. А тут Европа. Черт.
Realist007 27 июл 2020 в 18:43
Ярила  •  На сайте 10 лет
3
Они все просрали!
Clavet 27 июл 2020 в 18:44
Ярила  •  На сайте 10 лет
8
Цитата (lozovvv @ 27.07.2020 - 14:35)
Поэтому я когда думаю о новом телескопе Джеймс Уэбб, который должен заменить Хаббл, жутко ссыкотно становится что чтото может пойти не так, и это отбросит нас очень далеко назад.

И запускать его будут тоже на Ариане... хотя ракета и надежная, но все равно страшновато

Я тоже периодически размышляю о том, какой облом будет, если долгожданный запуск телескопа Уебба пойдет не по плану. Это будет просто катастрофа для всех людей, которые хоть немного интересуются космосом. Хотелось бы взглянуть на новые горизонты, недоступные старичку Хабблу. Я уже в квартире забронировал пару мест, куда наклею плакаты на основе обзорных фотографий, сделанных телескопом Уэбба. Представляю, какая красотища будет... cool.gif
Понравился пост? Ещё больше интересного в ЯП-Телеграм и ЯП-Max!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 45 881
0 Пользователей:
Страницы: 1 2 3 4  ОТВЕТИТЬ НОВАЯ ТЕМА

 
 

Активные темы



Наверх