Bu Pazar günü GPSD'de meydana gelecek bir hata, zamanı 19 yıl geriye alacak.

GPS cihazlarından hassas zaman ve konum verileri çıkarmak için kullanılan GPSD paketinde, 24 Ekim'de saatin 1024 hafta geriye kayması nedeniyle kritik bir sorun tespit edildi. zaman Mart 2002 olarak değiştirilecektir. Sorun 3.20'den 3.22'ye kadar olan sürümlerde görülüyor ve GPSD 3.23'te çözülüyor. GPSD kullanan tüm sistem kullanıcılarının güncellemeleri hemen yüklemeleri gerekir, aksi takdirde arızaya hazırlıklı olun.

Bu uygulama, zaman senkronizasyonu için kullanılan bazı NTP sunucularında doğru zaman verilerini elde etmek için kullanıldığından, hatanın etkisi, GPSD'yi doğrudan kullanmayanlar da dahil olmak üzere çeşitli sistemlerde öngörülemeyen arızalara yol açabilir. Sistemlerde zaman kaymaları meydana geldiğinde, kimlik doğrulama (örneğin, tek kullanımlık şifreler, Kerberos ve son kullanma tarihi olan diğer erişim doğrulama mekanizmaları artık çalışmayacaktır), sertifika doğrulama ve zaman aralıklarını değiştiren hesaplamalarda sorunlar ortaya çıkabilir ( örneğin, bir kullanıcının oturumunun süresinin hesaplanması). GPSD aynı zamanda çoğu artık cihaz yazılımı güncellemelerini almayan çeşitli yerleşik ve mobil cihazlarda da mevcuttur.

GPS protokolü, 5 Ocak 1980'den bu yana geçen haftaları sayan bir hafta sayacı içerir. Sorun şu ki, yayın sırasında bu sayaca yalnızca 10 bit tahsis ediliyor, bu da her 1023 haftada bir (19.7 yıl) taşma anlamına geliyor. İlk taşma 1999'da, ikincisi 2019'da, üçüncüsü ise 2038'de yaşanacak. Bu olaylar üreticiler tarafından izlenmekte ve onlara özel işleyiciler sağlanmaktadır. Şu anda, sayaç için 13 bitin tahsis edildiği (yani yalnızca 2137'de bir taşma bekleniyor) yeni bir GPS mesaj formatı (CNAV) paralel olarak tanıtılmıştır.

GPSD'de, fazladan bir saniyenin görünümünü ayarlama mantığında (dünyanın referans atom saatlerini Dünya'nın astronomik saatiyle senkronize etmek için eklendi), 24 Ekim 2021'de 1024'ün zamanından önce çıkarılması nedeniyle bir hata yapıldı. hafta sayacı. Kodun yazarına göre vardiyanın 31 Aralık 2022 tarihinde gerçekleşmesi gerekiyordu ancak bu tarihin hafta sayısına çevrilmesi doğru yapılmadı ve aslında çekte verilen hafta sayısı Ekim 2021'in altına düştü. (belirtilen değer 2180 yerine 2600'dir). /* artık saniyelere karşı akıl sağlığı kontrolü hafta numarası, GPS çağı * regresyonlarla iyi çalışmaz çünkü sıçrama_sconds * alıcıdan veya BUILD_LEAPSECONDS'tan olabilir. */ if (0 < session->context->leap_seconds && 19 > session->context->leap_seconds && 2180 < hafta) { /* 19 Aralık 31'ye kadar artık saniyenin = 2022 olduğunu varsayalım * yani hafta > 2180 çok ileride , buna izin verme */ hafta -= 1024; GPSD_LOG(LOG_WARN, &session->context->errout, "GPS haftası karışıklığı. %u haftası %d için düzeltildi\n", hafta, oturum->bağlam->leap_seconds); }

Kaynak: opennet.ru

Yorum ekle