LINUX.ORG.RU

История изменений

Исправление seiken, (текущая версия) :

Как я понял, там было переполнение из-за конверсии float64->int16 (или uint16…, но это не важно). В случае переполнения Ада кидала исключение, которое тупо не обрабатывалось программистами по причинам производительности.

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

На предыдущей версии системы переполнения не было просто потому что тогдашние ракеты не достигали такой скорости. А при переходе на новую версию об этом как-то забыли…

Исходная версия seiken, :

Как я понял, там было переполнение из-за конверсии float64->int16 (или uint16…, но это не важно). В случае переполнения Ада кидала исключение, которое тупо не обрабатывалось по причинам производительности.

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

На предыдущей версии системы переполнения не было просто потому что тогдашние ракеты не достигали такой скорости. А при переходе на новую версию об этом как-то забыли…