Ushbu yakshanba kuni GPSD-dagi xatolik 19 yil oldingi vaqt o'zgarishini anglatadi

GPS qurilmalaridan aniq vaqt va joylashuv ma'lumotlarini olish uchun foydalaniladigan GPSD paketida muhim muammo aniqlandi, buning natijasida vaqt 24 oktyabrda 1024 hafta orqaga siljiydi, ya'ni. vaqt 2002 yil martiga o'zgartiriladi. Muammo 3.20 dan 3.22 gacha bo'lgan versiyalarda paydo bo'ladi va GPSD 3.23 da hal qilinadi. GPSD ishlatadigan tizimlarning barcha foydalanuvchilari yangilanishlarni zudlik bilan o'rnatishlari yoki muvaffaqiyatsizlikka tayyor bo'lishlari kerak.

Xatoning ta'siri turli tizimlarda, shu jumladan GPSD-dan to'g'ridan-to'g'ri foydalanmaydigan tizimlarda oldindan aytib bo'lmaydigan nosozliklarga olib kelishi mumkin, chunki bu dastur vaqtni sinxronlashtirish uchun ishlatiladigan ba'zi NTP serverlarida aniq vaqt ma'lumotlarini olish uchun ishlatiladi. Tizimlarda vaqt almashinuvi sodir bo'lganda, autentifikatsiya (masalan, bir martalik parollar, Kerberos va amal qilish muddati tugagan boshqa kirishni tekshirish mexanizmlari ishlamaydi), sertifikatni tekshirish va vaqt oralig'ini boshqaradigan hisoblar bilan bog'liq muammolar paydo bo'lishi mumkin ( masalan, foydalanuvchi sessiyasi vaqtini hisoblash). GPSD shuningdek, turli xil o'rnatilgan va mobil qurilmalarda mavjud bo'lib, ularning aksariyati endi proshivka yangilanishlarini olmaydi.

GPS protokoli 5 yil 1980 yanvardan boshlab haftalarni hisoblaydigan haftalik hisoblagichni o'z ichiga oladi. Muammo shundaki, translyatsiya paytida ushbu hisoblagich uchun atigi 10 bit ajratiladi, ya'ni u har 1023 haftada (19.7 yil) toshib ketadi. Birinchi to'lib ketish 1999 yilda, ikkinchisi 2019 yilda, uchinchisi 2038 yilda sodir bo'ladi. Ushbu hodisalar ishlab chiqaruvchilar tomonidan nazorat qilinadi va ular uchun maxsus ishlov beruvchilar taqdim etiladi. Hozirgi vaqtda parallel ravishda yangi GPS xabar formati (CNAV) joriy etildi, unda hisoblagich uchun 13 bit ajratilgan (ya'ni, toshib ketish faqat 2137 yilda kutilmoqda).

GPSD-da qo'shimcha soniya ko'rinishini sozlash mantig'ida (dunyoning mos yozuvlar atom soatlarini Yerning astronomik vaqti bilan sinxronlashtirish uchun qo'shilgan) xatoga yo'l qo'yildi, buning natijasida 24 yil 2021 oktyabrda 1024 muddatidan oldin olib tashlanadi. hafta hisoblagichi. Kodeks muallifiga ko'ra, siljish 31 yil 2022 dekabrda sodir bo'lishi kerak edi, ammo bu sanani haftalar soniga tarjima qilish to'g'ri amalga oshirilmagan va aslida chekda ko'rsatilgan haftalar soni 2021 yil oktyabriga to'g'ri kelgan. (ko'rsatilgan qiymat 2180 o'rniga 2600). /* aql-idrokni tekshirish haftasi soni, GPS davri, sakrash soniyalariga nisbatan * Regressiyalar bilan yaxshi ishlamaydi, chunki sakrashlar * qabul qiluvchidan yoki BUILD_LEAPSECONDS dan bo'lishi mumkin. */ if (0 <sessiya->kontekst->kabisa_sekundlar && 19 > sessiya->kontekst->kabisa_sekundlar && 2180 < hafta) { /* 19-yil 31-dekabrgacha sekund soniya = 2022 deb faraz qilinsin * shuning uchun hafta > 2180 kelajakda yoΚ»l. , ruxsat bermang */ hafta -= 1024; GPSD_LOG(LOG_WARN, &session->kontekst->xato, "GPS haftasi chalkashligi. %u sakrash uchun sozlangan hafta %d\n", hafta, sessiya->kontekst->kabisa_sekundlar); }

Manba: opennet.ru

a Izoh qo'shish