Вівторок, 5 Листопада, 2024

24 жовтня 2021 передбачаються збої у додатках

Поширений в ІТ-галузі підхід до використання компонентів, які добровільно підтримуються однією людиною, може призвести до масового збою додатків. У компоненті Gpsd виявили баг з 2002 року, який проявить себе саме 24 жовтня 2021 року. Цей компонент використовується у Android, Linux, macOS, інших Unix-системах. Сайт gpsd повідомляє, що цей компонент використовується в автономних дронах, автомобілях, субмаринах, морській навігації, військових системах ідентифікації свій-чужий.

Після п’ятниці 24 жовтня програми, які покладаються на gpsd для обробки даних про час, можуть виявити, що вони живуть 19,6 років у минулому. Помилка в gpsd повертає годинник на 1024 тижні назад -у березень 2002 року.

Про баг у програмуванні gpsd публічно повідомили 24 липня 2021 року, і цю помилку, яку написали два роки тому, виправили. Але не кожна програма та пристрій, що використовує gpsd, встановили виправлення.

Мережевий протокол часу (NTP) надає можливість пристроям та службам отримувати точний час за допомогою ієрархічного набору серверів, що мають рейтинг точності, а “страта 0” представляє найточніші джерела часу.

Gpsd – це службовий демон, який перетворює дані з Глобальної системи позиціонування (GPS), Глобальної навігаційної супутникової системи (GNSS) та Системи автоматичної ідентифікації (AIS) у загальний формат, придатний для клієнтських програм.

Цей формат використовується для надання інформації про годинник точний час.

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-подібних.

Супутники 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 року.

Старіші версії програмного забезпечення, 3.19 і раніше, повинні бути нормальними, оскільки вони не містять цього багу. Тож виробники, чиї гаджети роками не отримали оновлень не постраждають.

Супровідники різних дистрибутивів Linux, стурбовані тим, що помилка може призвести до “справжньої панічної події Y2K”, і вони застосували виправлення. Debian та Ubuntu випустили виправлення.

Міллер, який вже на пенсії, у телефонній розмові сказав The Register, що підтримує gpsd, тому що це цікавіше, ніж грати в судоку. Тим не менш, він був би радий підтримці проекту, зокрема обладнанням GPS, яке він міг би використовувати для тестування.

“Якийсь випадковий хлопець, який відмовляється виходити сам, кілька місяців тому використав свій фірмовий симулятор GPS, щоб знайти цю помилку, – сказав він. – Я б дуже хотів, щоб у мене було таке обладнання. Але більшість виробників GNSS просто ігнорують gpsd. Навіть коли ми знаходимо помилки в їхніх матеріалах”.

Міллер не впевнений, що зможе назвати усіх, хто використовує програмне забезпечення, яке він обслуговує. “Я точно знаю, що це використовують багато військових, – сказав він. – Я знаю, що це є принаймні в одній ракетній системі. Мені сказали, що це в цистернах, вантажних автомобілях і годинниках для дайверів”.

Міллер припустив, що фінансові компанії також можуть зіткнутися з проблемами. За законом, за його словами, кожна ринкова операція має бути точно позначена часом.

Євген
Євген
Євген пише для TechToday з 2012 року. Інженер за освітою. Захоплюється реставрацією старих автомобілів.

Vodafone

Залишайтеся з нами

10,052Фанитак
1,445Послідовникислідувати
105Абонентипідписуватися