Kesalahan ing GPSD Minggu iki bakal nyetel wektu bali 19 taun.

Masalah kritis wis diidentifikasi ing paket GPSD, sing digunakake kanggo ngekstrak data wektu lan posisi sing tepat saka piranti GPS, amarga wektu kasebut bakal bali 24 minggu tanggal 1024 Oktober, yaiku. wektu bakal diganti dadi Maret 2002. Masalah kasebut katon ing rilis 3.20 nganti 3.22 kalebu lan dirampungake ing GPSD 3.23. Kabeh pangguna sistem sing nggunakake GPSD kudu langsung nginstal nganyari, utawa disiapake kanggo gagal.

Efek saka kesalahan kasebut bisa nyebabake kegagalan sing ora bisa ditebak ing macem-macem sistem, kalebu sing ora langsung nggunakake GPSD, amarga aplikasi iki digunakake kanggo njupuk data wektu sing akurat ing sawetara server NTP sing digunakake kanggo sinkronisasi wektu. Nalika owah-owahan wektu kedadeyan ing sistem, masalah bisa uga muncul karo otentikasi (contone, sandhi siji-wektu, Kerberos lan mekanisme verifikasi akses liyane sing duwe tanggal kadaluwarsa ora bakal bisa digunakake maneh), karo verifikasi sertifikat, lan karo petungan sing ngapusi rentang wektu ( contone, ngetung wektu sesi pangguna) . GPSD uga kasedhiya ing macem-macem piranti sing dipasang lan seluler, akeh sing ora nampa nganyari perangkat kukuh maneh.

Protokol GPS kalebu counter minggu sing ngitung minggu wiwit 5 Januari 1980. Masalahe yaiku sajrone siaran, mung 10 bit sing dialokasikan kanggo counter iki, tegese kebanjiran saben 1023 minggu (19.7 taun). Limpahan pertama kedadeyan ing 1999, sing nomer loro ing 2019, lan sing nomer telu bakal kedadeyan ing 2038. Acara kasebut dipantau dening pabrikan lan pawang khusus diwenehake kanggo dheweke. Saiki, format pesen GPS anyar (CNAV) wis dikenalake kanthi paralel, ing ngendi 13 bit dialokasikan kanggo counter (yaiku, kebanjiran sing dikarepake mung ing 2137).

Ing GPSD, ing logika kanggo nyetel tampilan detik ekstra (ditambahake kanggo nyinkronake jam atom referensi donya karo wektu astronomi Bumi), kesalahan digawe amarga ing 24 Oktober 2021, 1024 bakal dikurangi prematur saka counter minggu. Miturut penulis kode kasebut, owah-owahan kasebut kudu kedadeyan tanggal 31 Desember 2022, nanging terjemahan tanggal kasebut dadi jumlah minggu ora ditindakake kanthi bener lan nyatane jumlah minggu sing diwenehake ing cek kasebut mudhun ing wulan Oktober 2021. (Nilai sing dituduhake yaiku 2180 tinimbang 2600). / * nomer minggu mriksa kewarasan, jaman GPS, nglawan detik kabisat * Ora bisa digunakake kanthi regresi amarga leap_sconds * bisa uga saka panrima, utawa saka BUILD_LEAPSECONDS. */ yen (0 <session->context->leap_seconds && 19 > session->context->leap_seconds && 2180 < week) { /* nganggep kabisat detik = 19 dening 31 Des 2022 * dadi minggu > 2180 iku cara ing mangsa ngarep , ora ngidini */ minggu -= 1024; GPSD_LOG(LOG_WARN, &session->context->errout, "GPS week confusion. Minggu sing disetel%u kanggo kabisat%d\n", minggu, session->context->leap_seconds); }

Source: opennet.ru

Add a comment