LINUX.ORG.RU

Космический спутник LightSail на солнечном парусе завис из-за программной ошибки

 , , , ,


0

3

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

Телеметрия передается на частоте 437.435 MHz, Planetary Society призывало радиолюбителей помочь им принимать телеметрию спутника. Первым радиолюбителем, принявший полный пакет телеметрии, стал Ken Swaggart (W7KKE) из Lincoln City, штат Орегон, событие произошло через пять часов после запуска. За два дня было получено 140 пакетов данных — состояние спутника было хорошее, питание и температура в норме.

Но ошибка была в программном обеспечении спутника. Каждые 15 секунд спутник отправлял сигнал радиомаяка. Одновременно данные дописывались в файл beacon.csv. Неумолимо приближался момент, когда файл занял всё доступное пространство памяти в 32 мегабайта и полетное ПО упало. Оказывается, производитель платы управления уже имел версию ПО с исправленной ошибкой, но спутник не был обновлен до актуальной версии. В пятницу команда управления получила уведомление о ошибке в ПО и готовилась к дистанционному обновлению ПО спутника при следующем прохождении его в зоне видимости станции, но спутник завис раньше. Последняя телеметрия была получена 22 мая в 21:31 по UTC.

На данный момент команда пытается перезагрузить спутник, вследствие чего будет стерт файл beacon.csv и будет возможно в нормальном режиме обновить или исправить ПО. Спутник не имеет Watchdog, и перезагрузка осуществляется по команде с Земли. В прошедший вторник команда управления при пролете спутника в зоне видимости станций пыталась перезагрузить спутник. Более 18 раз посылалась команда перезагрузки, но ничего не произошло. Команда надеется на то, что спутник перезагрузится самостоятельно — космические частицы часто вызывают перезагрузку систем спутников типа Cubesat. По мнению специалистов, перезагрузка спутника может произойти в течение 3-6 недель. Команда Planetary Society просит радиолюбителей слушать частоту Lightsail и прислать им сообщение на lightsail@planetary.org, если сигнал будет обнаружен. Свежие TLE спутника публикуются здесь: http://sail.planetary.org/tles/live.txt

>>> Обсуждение спутника Lightsail

Ответ на: Но есть одно „но” от h578b1bde

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

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

Вероятность вытащить золотую монету из сундука с двумя золотыми монетами выше, чем из сундука с одной золотой и одной серебряной монетой

Это не важно, потому что мы уже отбросили вариант «обе серебряные» и нас не интересует вероятность этого события. Теперь вероятность того что ВТОРАЯ мотена в ЭТОМ ЖЕ сундуке золотая 50%.

Вы вообще какую то другую задачу решаете, сами себе придумали и доказываете.

На всякий случай вот оригинал:

Ну и в честь праздика, предлагаю старую загадку!

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

В первом — две золотых. Во втором — две серебрянных. В третьем — одна золотая и одна серебрянная.

Мы выбираем сундук случайным образом и вслепую вытаскиваем от туда монетку. Она оказывается золотой. Какова вероятность того, что вторая монетка в этом сундуке — тоже золотая?

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

Пока нет. Буду рад любой критике.

итак, разберем по частям тобою написанное.

1. коментарии на русcком facepalm.jpg

2. #define LISTEN_BACKLOG (100) всегда константы в скобочках пишеш? a = b + (10); ?

3. if (0 == status) константу впереди переменной пишут быдлокодеры, и не нужно расказывать что это типа надежно и что компилятор выдаст ошибку если провтыкать одно равно, но так пишут быдлокодеры, точка

4. 670 строк из них 34 начинаются на pthread_ походу бездумно используеш синхронизацию

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

5. /* Поток должен запуститься только после окончания инициализации */ pthread_mutex_lock(&init_connection_lock); pthread_mutex_unlock(&init_connection_lock); если поток должен запустится после инициализации так и запускай после инициализации, про conditional variables ты походу тоже не слышал

6. void close_server_socfd_on_exit(void) pthread_mutex_unlock(&connections_lock); pthread_mutex_unlock(&init_connection_lock); ты эти мютексы локал что их анлокаеш?

7. void close_server_socfd_on_exit(void) дожидаешся пока завершатся все потоки весьма интересным способом, про pthread_join походу не слышал, потом когда потоки завершились опять локаеш мютексы, зачем? остался ведь один поток только.

дальше не смотрел, с тобой и так все понятно

anonymous ()
Ответ на: комментарий от hawai

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

Если нельзя привести пример, значит оно того не стоит. Обычно использую, но тут смысла мало.

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

Если второй раз тебе надо вытаскивать монетку - 1/2 (допустим сундуки перемешали). Если не надо и выбор сундука уже сделан в первый раз и далее не меняется, то с вероятностью 2/3 там окажется вторая такая же монетка.

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

Местами написано не по-русски («ты эти мютексы локал что их анлокаеш?»), но спасибо. Посмотрю что из этого стоит править.

Комментарии на русском лучше кривых комментариев на английском.

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

Если не надо и выбор сундука уже сделан в первый раз и далее не меняется, то с вероятностью 2/3 там окажется вторая такая же монетка.

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

Вы же упорно подсовываете другую задачу «а с какой вероятностью мы наткнемся на одинаковые монеты самого начала, еще до первого вытаскивания»

anonymous ()
Ответ на: комментарий от svsd_val

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

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

ranka-lee ()
Последнее исправление: ranka-lee (всего исправлений: 1)
Ответ на: комментарий от anonymous

но так пишут быдлокодеры, точка

как сразу стало всё очевидно. теоремы в школе тоже так доказывал?

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

Если нельзя привести пример, значит оно того не стоит. Обычно использую, но тут смысла мало.

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

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

Да я и не спорю, там вообще general-purpose OS не место.

Подозреваю, что остальные варианты ещё хуже, потому что general-purpose OS, если выбросить всё лишнее и ненужное для космоса, сейчас довольно неплохо отлажены. А культуры написания софта и разработки железа как для Вояджеров уже нет. Просто представь себе, что накодили бы те, кто этот баг допустил, если бы они еще и ОС писали был для спутника.

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

Условием ограничили до одного сундука

anonymous ()

А делов то было поставить туда MS Windows Server 2013!

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

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

В первом — две золотых. Во втором — две серебрянных. В третьем — одна золотая и одна серебрянная.

Мы выбираем сундук случайным образом и вслепую вытаскиваем от туда монетку. Она оказывается золотой. Какова вероятность того, что вторая монетка в этом сундуке — тоже золотая?

давайте упростим задачу: был пожар и монеты слиплись (а сундуки были огнеупорны по умолчанию), в каждом сундучке оказалось по слитку металла, по сути имеем три элементарных исхода:


1. золотой слиток
2. серебрянный слиток
3. сплав золота и серебра (тоже слиток) 

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

соответственно,


P(A) = 1/3

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

А кто им доктор, что limits не настроили? Что у них похоже всё от рута работало или в любом случае от одного юзера и админка (каналы управления спутником) и прикладной софт. К тому же про зависание ОС не говорили, как раз ядро возможно и не зависло, но толку-то.

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

А вы решите следующую задачу: Три сундука, в одном три золотых, во-втором три серебряных, в третьем две золотых и одна серебряная.

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

anonymous ()
Ответ на: комментарий от ZenitharChampion

На спутнике нет иксов.

Но это его не спасло, фича нашла зависимость через которую и пролезла.

Napilnik ★★★★★ ()
Ответ на: комментарий от ranka-lee

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

А к чему это идиотское противопоставление? Ньютон например just for fun создал основы современной физики. Никто его не заставлял этим заниматься и не указывал стандарты как ему это надо делать. Однако в итоге получилось такое Дело, что ого-го.

EvgenijM86 ()
Ответ на: комментарий от anonymous

~/.xsession-errors на спутнике? :)

А это не важно. На десктопах эту говнофичу отладили а потом перенесли во встраиваемую систему.

Napilnik ★★★★★ ()
Ответ на: комментарий от ranka-lee

Потому как прочитать тупо спеки на железо,

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

Napilnik ★★★★★ ()

когда файл занял всё доступное пространство памяти в 32 мегабайта
Более 18 раз посылалась команда перезагрузки, но ничего не произошло

Про 12309 же? Нет? Так похоже, когда пытаешься зайти на забомбленный линукс по ssh...

Shadow ★★★★★ ()

Неужели инженеры сшашки скатились в такое днище? Или это диверсия насы, чтоб не повадно было?

anonymous ()
Ответ на: комментарий от ranka-lee

Ну вот это и есть линукс-культура, которая вся «for fun», а не про дело.

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

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

Про 12309 же? Нет? Так похоже, когда пытаешься зайти на забомбленный линукс по ssh...

Ыксперды в треде.

Там наверняка не ССХ, а своё наколенное ПО, которое радиосигнал принимает и его транслирует в предопределённые команды. Причём судя по косяку в софте у них могло хватить ума поставить одну программу и принимать команды и отправлять телеметрию.

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

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

И потом, вопрос был в вероятности того, какова вероятность что вы вытяните вторую золотую монетку из того-же ящика, ПОСЛЕ того, как вы вытянули первую. Вы ведь можете (первоначально) вытянуть и серебряную.

Я же предлагаю решить ДРУГУЮ задачу. Решите, у выложите ход решения. Все.

anonymous ()
Ответ на: комментарий от ranka-lee

Ну вот это и есть линукс-культура, которая вся «for fun», а не про дело.

  • В чём связь между программистами, ОС на базе ядра Linux и железом Оо ?
  • Причём тут «линукс-культура» ?
  • Разве в ОС или Ядре дело ?

Разве наши запускают в космос спутники и ракеты которые виснут и падают, летят не туда и т.д. за фигову тучу бабла JUST FOR FAN !?

Если говорить о том что тут произошло, тут на глаза ошибка в логике и нехватка тестирования и это характерно для программирования в целом. То есть это характерно для всех ОС, для всего софта. Даже на простом софте дофига версий, версий изменений и патчей (которые включают в себе изменения и исправления).

Пока что я вижу проблемы даже с простой логикой. Либо заявления человека мало знающего и понимающего в этой сфере.

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

Команда надеется на то, что спутник перезагрузится самостоятельно — космические частицы часто вызывают перезагрузку систем спутников типа Cubesat. По мнению специалистов, перезагрузка спутника может произойти в течение 3-6 недель.

Вот этот момент добил)) Так ребут сделать - просто волшебство какое-то!

StasON777 ()
Ответ на: комментарий от Pm7vLB

Только в условии монеты не слиплись и мы вытащили одну из них. Что осталось в сундуке нам не известно. Хотя понятно, что там точно было не 2 серебряных монеты, т.е. минус один сундук.

winlook38 ★★ ()

Вангую, что прогу писал любитель оффтопика, который думает, что на железяке будет HDD на 8Тб,
или уныйлый поц, который думал, что за проверки и слово компетенция ему не доплачивают.
Но если этих проверок не было уже в постановке задачи, то ситуация, походу, в проработке деталей ПО на уровне 'тяп ляп'.
Мораль - если бы программисты так строили дома...т.д. и т.п.

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

Есть механизм. Просто никто не пользуется.

Видимо чтобы им пользоваться нужно сначала узнать зачем оно нужно. Откуда обычному пользователю-хомячку знать что линукс — это такой набор костылей, которые ещё нужно дополнительно обмотать синей изолентой?

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

Что-то ты бредятину несёшь. Тебе уже всё расписали двумя способами. Не всё, что тебе якобы очевидно, на самом деле верно.

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

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

cvs-255 ★★★★★ ()
Ответ на: комментарий от Sahas

Ответом на задачу

Случайно не является просьба уточнить условия?

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

Все уже давно эту задачу прочитали и поняли.
Посмотри на строку B) в этом примере
Космический спутник LightSail на солнечном парусе завис из-за программной ошибки (комментарий)
Она как раз и является решением этой задачи и расписана для равновероятностных исходов после отбрасывания колонок 4,5,6 по условию.

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

Так же не следует забывать о том что если у винды кончится весь (системный) диск она тупо не запустится (мб новые версии винды в этом лучше)

Х.з., как с этим в новых, сто лет не сталкивался с исчерпанием диска в Windows. И даже как в XP сходу вспомнить не могу. А вот на Win98 исчерпание диска, порой, ловилось только по тому, что при попытке сохранить JPEG-картинку из браузера она... пыталась сохраниться как .bmp (и, естественно, неудачно). Несколько раз у знакомых с этими симптомами сталкивался. Система грузится, сёрфинг пашет, ни слова про нехватку места и только при сохранении картинки — .bmp и неудачно :)

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

JUST FOR FAN

не, и не только для вентилятора ;)

anonymous ()
Ответ на: комментарий от weare

А нацпол уже был?

Кроудфандинг же. Какой танцпол? :)

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

Когда я компилячу GCC и OpenOffice, создаются миллионы маленьких файликов. Inode-ов почему-то хватает.

Суть в том, что ты их периодически компиляешь на десктопе. Срань логами же идёт постоянно и независимо от пользователя и устройства, которое они засирают (твой десктоп, сервер сторожа под кроватью, мой роутер или чья-то кофеварка).

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

ты, не слышавший о watchdog'ах

4.2

С чего оно перезагружаться-то будет?

С того что сигналы посылали.

винда, которая падает сама по себе

4.2

h578b1bde ★☆ ()

занял всё доступное пространство памяти в 32 мегабайта и полетное ПО упало

Кстати, почему так мало ОЗУ? Или там спецмикросхемы?

int13h ★★★★★ ()
Ответ на: Увы, нет. от DummyBoy

Re: Увы, нет.

Ибо таки 2/3.

Увы нет, таки 1/2.

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