Приходите в воскресенье, 24 октября 2021 года, и те, кто использует приложения, использующие gpsd для обработки данных о времени, могут обнаружить, что живут на 1024 недели – 19,6 лет – в прошлом.
Ошибка в gpsd, которая возвращает часы к марту 2002 года, должна появиться в ближайшие выходные.
Ошибка программирования была выявлена 24 июля 2021 года, и ошибочная фиксация кода, написанная два года назад, с тех пор исправлена. Теперь просто нужно убедиться, что каждое приложение и устройство, развертывающее gpsd, применили исправление.
Протокол сетевого времени (NTP) позволяет устройствам и службам сохранять точное время с помощью иерархического набора серверов, оцененных с точки зрения точности, причем «слой 0» представляет наиболее точные источники времени.
Gpsd – это сервисный демон, который переводит данные из источников передачи глобальной системы позиционирования (GPS), глобальной навигационной спутниковой системы (GNSS) и системы автоматической идентификации (AIS) в общий формат, подходящий для клиентских приложений. Он используется для предоставления информации о часах ntpd, демону NTP, используемому операционными системами, для синхронизации системных часов устройства со временем, предоставляемым приемником GPS / GNSS / AIS – спутники GPS полагаются на несколько атомных часов, поэтому их данные о времени являются очень точными.
Gpsd широко используется. Он реализован в таких приложениях, как Kismet, GpsDrive, gpeGPS, roadmap, roadnav, navit, viking, tangogps, foxtrot, obdgpslogger, geohist, LiveGPS, geoclue, qlandkartegt, gpredict, OpenCPN, gpsd-navigator, gpsd-ais-viewer и Firefox.
Он доступен в Android, Linux, macOS и других Unix-подобных операционных системах. На веб-сайте gpsd говорится, что программное обеспечение используется во встроенных мобильных системах, таких как БПЛА, подводные лодки-роботы, автомобили без водителя, а также в приложениях, используемых в морской навигации и военных системах IFF (Identification Friend or Foe).
Спутники GPS отслеживают количество недель, прошедших с 5 января 1980 года. И они передают номер недели в виде 10-битового целого числа без знака, которое может представлять значения от 0 до 1023. Таким образом, каждые 1024 недели или 19,6 года, система переворачивается.
Впервые это произошло в конце субботы, 21 августа 1999 г .; второй раз был в конце субботы, 6 апреля 2019 года. Третий перенос недели GPS не запланирован до субботы, 20 ноября 2038 года, но ошибка в gpsd, связанная с процедурой проверки целостности в ожидании будущего секунда координации – сбросит номер недели GPS, поскольку эта суббота заканчивается и начинается воскресенье.
Гэри Миллер, сопровождающий gpsd, признал, что допустил ошибку – простой просчет. Ошибка появилась в конце 2019 года и присутствует в версиях 3.20, 3.21 и 3.22. Последний официальный выпуск с исправлением – 3.23.1 от 9 сентября 2021 г.
Сопровождающие различных дистрибутивов Linux, обеспокоенные тем, что ошибка может привести к “реальное паническое событие 2000 года, “применили патч. Debian и Ubuntu выпустили исправление.
От нуля до 100
Патч был перенесен Debian в серию 3.22, сказал Миллер. в электронном письме.
На просьбу оценить вероятность того, что что-то пойдет не так из-за того, что люди не исправят эту ошибку, Миллер сказал: «В зависимости от того, какой приемник GPS / GNSS используется и как он настроен, вероятность составляет 0 процентов или 100. процентов. Устройства, настроенные для вывода «Стандартного» NMEA, не будут затронуты. Это затронет устройства, такие как устройства u-blox, работающие в режиме двоичных сообщений ».
Миллер, который на пенсии, рассказал в телефонном разговоре он поддерживает gpsd, потому что это интереснее, чем играть в судоку. Тем не менее, он приветствовал бы поддержку проекта, особенно оборудование GPS, которое он мог бы использовать для тестирования.
«Какой-то случайный парень, который отказывается раскрыть себя, использовал GPS-симулятор своей компании, чтобы найти эту ошибку несколько месяцев назад», – сказал он. «Я бы очень хотел иметь такое оборудование. Но большинство производителей GNSS просто игнорируют gpsd. Даже когда мы находим ошибки в их материалах».
Миллер, просивший, чтобы производитель комплектов GPS Meinberg был признан за поддержку gpsd, сказал, что не уверен, кто на самом деле использует программное обеспечение, которое он поддерживает. «Я точно знаю, что многие военные используют его», – сказал он, указывая на «переносные» или «ранцевые» радиостанции. «Я знаю, что это по крайней мере в одной ракетной системе. Мне сказали, что это в танках, грузовиках и водолазных вахтах».
Я точно знаю, что многие военные используют его.
Но определить, какая из этих систем, если таковая имеется, будет иметь неблагоприятные последствия, сложно. Более старые версии программного обеспечения, 3.19 и более ранние, должны быть в порядке, потому что они предшествовали фиксации с ошибкой. Таким образом, производители, которые годами не обновляли свое программное обеспечение, могут остаться невредимыми.
«Те люди, которые потенциально могут оказаться в тупике, – это люди, которые запускают клиент протокола сетевого времени GPS и просматривают его каждые два года – а это очень много», – сказал Миллер. «Я не знаю, насколько велик … Я подозреваю, что мы найдем версии устройств NTP, которые были обновлены два года назад, и все они потерпят неудачу 24-го числа».
Миллер предположил, что финансовые фирмы также могут столкнуться с проблемами соблюдения требований. По его словам, по закону каждая рыночная операция должна иметь точную временную метку. По его словам, если кто-то купит не тот сервер времени GPS NTP и поместит его в свою брокерскую контору, это может стать некрасивым.
«Будут проблемы», – сказал Миллер. «Некоторые люди будут ошеломлены, а некоторые из них возьмут это на себя, и это моя ошибка».

Жизнь подражает искусству … Источник: Рэндалл Манро / XKCD. Используется с разрешения
В своем электронном письме Миллер включил ссылку на прошлогодний комикс XKCD, широко известный среди разработчиков программного обеспечения. На нем изображена сложная башня из блоков, представляющая «всю современную цифровую инфраструктуру», поддерживаемая хрупкой колонной с надписью «Проект, который какой-то случайный человек в Небраске неблагодарно поддерживает с 2003 года».
«Ну, я парень из Небраски, – сказал Миллер. «Омаха, если быть точным».