LINUX.ORG.RU
ФорумTalks

Скиапарелли гавкнулся из-за зависания программы

 ,


0

2

http://ru-universe.livejournal.com/1067127.html

http://ria.ru/science/20161025/1479972887.html

«На текущий момент мы смогли реконструировать следующее – программа, работавшая с радаром и системой замера высоты, неправильно „общалась“ с общей системой навигации „Скиапарелли“. Она зависла или не отвечала на вызовы операционной системы лендера достаточно долгое время, в результате чего был сброшен парашют. Затем ОС модуля посчитала, что он уже находится на земле, и отключила двигатели», — объясняет директор.

По его словам, в момент зависания «Скиапарелли» находился на высоте примерно в 2-4 километра над поверхностью Марса, в результате чего произошла катастрофа и он рухнул на плато Мередиана, предположительно взорвавшись в том месте, где он должен был сесть.

В коментах пишут, что «Скиапарелли» работал под управлением FreeRTOS

★★★★★

Последнее исправление: anonymous_incognito (всего исправлений: 1)

Обидно, конечно, столько лет готовиться и разбить.

dk-
()

Наши предки делали парашютную систему без ОС на пороховых движках - стропы ослабли и парашют отстреливался.

ilovewindows ★★★★★
()

Ага, «Сишка»!

Кульхацкеры не слыхали про CUnit и code coverage?

Ну, на то они и кульхацкеры, а не программисты.

Это меня, «жабабыдлокодера»(С)(TM) заставляют работать с JUnit/TestNG, да еще EasyMock в придачу и Cobertura. Код не «закоммитить», если условия покрытия кода тестами не выполнены.

Видать, кульхацкерам с ЛОРа в их радиотехнических университетах (бывших техникумах), титиретики-даватели_препы ничего про TDD не рассказывали.

Bioreactor ★★★★★
()
Ответ на: комментарий от inchallah

Необучаемость кого или чего? ;)

Интересно будет взглянуть на готовый отчёт, но меня удивляет реакция основной ОС на зависание. Как будто они там слов «циклограмма полёта» не знают, хотя целый фильм сделали про посадку, типа как он садится. Нельзя же на один радар только в таком деле полагаться. А если бы он вышел из строя, что собственно и случилось.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

Извините, но про диванных экспертов я уже упоминал.

Без тестирования софт в любых более-менее больших компаниях не разрабатывают.

С 1963 года.

Так учил этнический итальянец T.DeMarco.

Bioreactor ★★★★★
()
Последнее исправление: Bioreactor (всего исправлений: 1)

Поставили бы Gentoo все было бы нормально. Главное чтобы к маневру торможения успела докомпелять.

Promusik ★★★★★
()
Последнее исправление: Promusik (всего исправлений: 1)
Ответ на: комментарий от anonymous_incognito

Необучаемость кого или чего? ;)

Европейсов. Бигль-2 не смог, этот тоже. Будем надеяться на 2020.

inchallah
()
Ответ на: комментарий от Bioreactor

Извините, но про диванных экспертов я уже упоминал.

Да, мы уже видели твой ник в треде.

inchallah
()
Ответ на: комментарий от anonymous_incognito

FreeRTOS, там где в общем случае нужен REPL язык (да-да, хот-парчинг во все поля) — странный выбор. В космос обычно (успешно) летают Forth и подобные.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 2)

Марсианские ХАКИРЫ походу ЗАХАКИРОВАЛИ!

paran0id ★★★★★
()
Ответ на: комментарий от Bioreactor

Извините, но про диванных экспертов я уже упоминал.

Без тестирования софт в любых более-менее больших компаниях не разрабатывают.

Я про архитектуру ещё почему упомянул. Что такие вещи как _зависание_ отдельной подзадачи в произвольный момент времени трудно покрыть тестами. Особенно, если думать, что оно в принципе повиснуть не может. А в остальном я не знаю, может они полное покрытие даже и делали, только не помогло оно.

Умение писать надёжный софт, выдающий результат даже на ломающемся железе - это отдельное искусство. Пока что создаётся впечатление, что в этом опыта у разработчиков было мало. Не то, чтобы у меня было больше, но со стороны удобнее обсуждать почему вратарь пропустил мяч :)

anonymous_incognito ★★★★★
() автор топика

А надо было на Common Lisp писать, как американцы. Тогда можно было бы на ходу через удаленный репл пофиксить.

Oxdeadbeef ★★★
()
Ответ на: комментарий от beastie

А как бы им там REPL помог, если там даже в полном реалтайме по любому 8 минут сигнал до Земли и 8 обратно идёт. И кстати, я что-то не нашёл сходу инфы на каком языке всё это было написано (не считая самой ОС)

anonymous_incognito ★★★★★
() автор топика
Последнее исправление: anonymous_incognito (всего исправлений: 1)
Ответ на: комментарий от anonymous_incognito

Что бы в «горячую» фазу не промахнуться оно обычно всё дублируется и тестируется по самое «нехочу».

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

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от ritsufag

... Бугурт все равно при этом был бы у тех, кто финансировал, а не у авторов говнокода. Если авторы для такого mission critical девайса не осилили тестирование/кавередж, симуляцию и хотя бы элементарный препродакшн тест, тем полее для такой фигни, как обмен данными между компонентами системы, то тут не спасет ничего.

ncrmnt ★★★★★
()
Ответ на: комментарий от beastie

forth конечно компактен, но все равно за все фичи языка приходится платить. А из-за требований к рад. стойкости производительность железа там хреновая от слова очень. Это раз. Два - судя по описанию там задача которая требует хорошего реалтайма и достаточной производительности, что еще сужает выбор инструментов. Три - когда баг всплыл судя по описанию, хотфикс было выпускать поздно. Там пинг 15 минут! Такие вещи надо тестировать грамотно ДО полета.

Короче не в инстументе дело.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от Bioreactor

Зато софт от компаний с методологией разработки «хуяк-хуяк и в продакшен» успевает занять рынок раньше, пока большие компании с тестированием раздуплятся. Из пользователей софта достаточно приемлемые тестеры получаются :)

Harald ★★★★★
()
Ответ на: комментарий от Bioreactor

Зависит от задачи. Все что не mission critical (А это 90% софта) разрабатывается по методологии херак херак и в продакшн. И даже если инженеры годные - манагеры выставляют такие рамки, что ни о какой архитектуре и думать не приходится. time2market важнее, один хрен блондинка не поймет что внутри костыли и гвозди, она будет нежно просить программулину не глючить, надеясь что от того, насколько нежно она это сделает рейс кондишн уйдет.

Не удивительно, что с такой методологией они и в другие области прут.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 3)
Ответ на: комментарий от Bioreactor

Пролетал недавно пост про глюк в арианах или чом-то подобном, из-за которого на старте фейерверк был. Там тупо взяли кусок программы от старой версии ракеты. Он был оттестирован, но под другие условия. В итоге некорректные условия и взрыв.

Так что экономия на тестировании даже в крупных компаниях.

stave ★★★★★
()
Ответ на: комментарий от beastie

Что бы в «горячую» фазу не промахнуться оно обычно всё дублируется и тестируется по самое «нехочу».

Забавно было, когда ракета(какая-то из европейских) взорвалась на старте, основной блок и дублирующий отказали друг за дружкой за 10 секунд, так как код был одинаковый и некорректный.

stave ★★★★★
()
Ответ на: комментарий от beastie

Что бы в «горячую» фазу не промахнуться оно обычно всё дублируется и тестируется по самое «нехочу».

Угу, а тут похоже явно сэкономили.

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

Но всё-таки, как бы тут помог именно REPL? Возможность перезалить софт, наверняка, по любому имелась (если нет - это совсем детсад), но конкретно в ходе спуска из-за 8 минутного лага ничего поделать нельзя никак.

anonymous_incognito ★★★★★
() автор топика
Последнее исправление: anonymous_incognito (всего исправлений: 1)

Лендер делали в основном итальянцы...

Странно, что не на кластере из ардуин :)

quickquest ★★★★★
()
Ответ на: комментарий от shimshimshim

Точно. У них там на орбите Марса полно аппаратов, облучили зонд специально.

И ведь не смотря на то что миссия в целом успешна, общественностью авария воспринимается как провал. Ложка дёгтя которая испортила весь мёд.

mandala ★★★★★
()

Томми разбился, а дело его живёт.

Valeg ★★★
()
Ответ на: комментарий от EXL

было бы как с Tommy

На этот раз стена-бы проиграла.

aplay ★★★★★
()
Ответ на: комментарий от ritsufag

Надо было юзать бугуртос.

Да неважно, они обе дубовые донельзя. Я не представляю, ЧТО, кроме дедлока, может их повесить.

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

alegz ★★★★
()

Надо было не выделываться и использовать QNX или VxWorks.

А вот аппаратный microkernel, над которым работаю уже около 5 лет, никогда не зависнет. Жаль, не доживу, но уверен что лет через N аппаратный microkernel вытеснит QNX и VxWorks, не говоря уже об стальных системах реального времени.

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

alman ★★★
()
Ответ на: комментарий от anonymous_incognito

Что такие вещи как _зависание_ отдельной подзадачи в произвольный момент времени трудно покрыть тестами.

Синхронные сообщения в стиле микроядра L4, при должном умении, никогда не подвесят систему. Для этого есть такая фишка, как таймаут сообщения - если какая-то задача не начала коммуникацию, то вторая задача получит сообщение «Таймаут» и может его обработать. Другие способы взаимодействия, в том числе асинхронные, это в той или иной степени костыли.

alman ★★★
()

Да, давно пора писать софт краудфандингом. На одном лоре уже чотко написали как нужно было делать.

Суть решения проблемы такова: собираем экспертов по всем интернетам, спрашиваем у них как правильно делать, делаем все по инструкциям и профит! Солнечная система стремительно покорена. Можно приниматься за Альфу Центавра

Deleted
()
Ответ на: комментарий от stave

Пролетал недавно пост про глюк в арианах или чом-то подобном, из-за которого на старте фейерверк был. Там тупо взяли кусок программы от старой версии ракеты. Он был оттестирован, но под другие условия. В итоге некорректные условия и взрыв.

Если бы они в блок try-catch запихали изменение всех критических переменных, ничего бы не случилось, исключение обработалось бы, и ракета осталась бы управляемой. Но они не запихали. Потому что на Ариан-4 был совсем дохлый боротовой компьютер. А try-catch жрёт ресурсы. А критически важные переменные а Ариан-4 никогда не выходили за рамки нормальных значений, в силу аппаратных свойств ракеты, и это было сделано преднамеренно. В Ариан-5 они вышли за эти рамки, и прога срубилась. Так что - свистоперделки в программировании, плюс, экономия на железе, привели к этому сбою. Надеюсь, выводы были сделаны.

tiinn ★★★★★
()
Ответ на: комментарий от anonymous_incognito

как бы тут помог именно REPL? Возможность перезалить софт

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

Забавный факт: на cosmos-grade CPU просто тупо отсутсвует инструкция HLT, что бы не дай ЛММ случайно не выключить железку.

beastie ★★★★★
()
Ответ на: комментарий от anonymous_incognito

если там даже в полном реалтайме по любому 8 минут сигнал до Земли и 8 обратно идёт

Тащемта 8 минут - это про свет от Солнца. От Марса - от 3 до 22 минут.

WereFox ★☆
()
Ответ на: комментарий от ncrmnt

Вот к примеру то, что успешно летало (в частности на Philae): https://en.wikipedia.org/wiki/RTX2010

It is a two-stack machine, each stack 256 words deep each, that supports direct execution of Forth. Subroutine calls and returns only take one processor cycle and it also has a very low and consistent interrupt latency of only four processor cycles, which lends it well to realtime applications.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от Bioreactor

Это меня, «жабабыдлокодера»(С)(TM) заставляют работать с JUnit/TestNG, да еще EasyMock в придачу и Cobertura. Код не «закоммитить», если условия покрытия кода тестами не выполнены

О, надо глянуть. а то народ у нас ленится юниты писать. Пока присобачил checkstyle и findbugs к мавену чтоб блокировать сборку в случае критической массы

upcFrost ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.