ఈ ఆదివారం GPSDలో ఏర్పడిన లోపం 19 సంవత్సరాల క్రితం సమయాన్ని సెట్ చేస్తుంది.

GPSD ప్యాకేజీలో ఒక క్లిష్టమైన సమస్య గుర్తించబడింది, ఇది GPS పరికరాల నుండి ఖచ్చితమైన సమయం మరియు స్థాన డేటాను సంగ్రహించడానికి ఉపయోగించబడుతుంది, దీని కారణంగా సమయం అక్టోబర్ 24న 1024 వారాలు వెనక్కి మారుతుంది, అనగా. సమయం మార్చి 2002కి మార్చబడుతుంది. సమస్య విడుదలలు 3.20 నుండి 3.22 వరకు కనిపిస్తుంది మరియు GPSD 3.23లో పరిష్కరించబడుతుంది. GPSDని ఉపయోగించే సిస్టమ్‌ల వినియోగదారులందరూ వెంటనే నవీకరణలను ఇన్‌స్టాల్ చేయాలి లేదా వైఫల్యానికి సిద్ధంగా ఉండాలి.

సమయ సమకాలీకరణ కోసం ఉపయోగించే కొన్ని NTP సర్వర్‌లలో ఖచ్చితమైన సమయ డేటాను పొందేందుకు ఈ అప్లికేషన్ ఉపయోగించబడుతుంది కాబట్టి, లోపం యొక్క ప్రభావం GPSDని నేరుగా ఉపయోగించని వాటితో సహా వివిధ సిస్టమ్‌లపై అనూహ్య వైఫల్యాలకు దారి తీస్తుంది. సిస్టమ్‌లలో సమయ మార్పులు సంభవించినప్పుడు, ప్రమాణీకరణతో సమస్యలు తలెత్తవచ్చు (ఉదాహరణకు, వన్-టైమ్ పాస్‌వర్డ్‌లు, Kerberos మరియు గడువు ముగింపు తేదీని కలిగి ఉన్న ఇతర యాక్సెస్ ధృవీకరణ మెకానిజమ్‌లు ఇకపై పని చేయవు), సర్టిఫికేట్ ధృవీకరణతో మరియు సమయ పరిధులను మార్చే గణనలతో ( ఉదాహరణకు, వినియోగదారు సెషన్ సమయాన్ని లెక్కించడం) . GPSD వివిధ ఎంబెడెడ్ మరియు మొబైల్ పరికరాలలో కూడా అందుబాటులో ఉంది, వీటిలో చాలా వరకు ఫర్మ్‌వేర్ అప్‌డేట్‌లు అందవు.

GPS ప్రోటోకాల్‌లో జనవరి 5, 1980 నుండి వారాలను లెక్కించే వారం కౌంటర్ ఉంటుంది. సమస్య ఏమిటంటే, ప్రసార సమయంలో, ఈ కౌంటర్ కోసం 10 బిట్‌లు మాత్రమే కేటాయించబడతాయి, అంటే ఇది ప్రతి 1023 వారాలకు (19.7 సంవత్సరాలు) ఓవర్‌ఫ్లో అవుతుంది. మొదటి ఓవర్‌ఫ్లో 1999లో సంభవించింది, రెండవది 2019లో మరియు మూడవది 2038లో సంభవిస్తుంది. ఈ ఈవెంట్‌లను తయారీదారులు పర్యవేక్షిస్తారు మరియు వారి కోసం ప్రత్యేక హ్యాండ్లర్లు అందించబడతాయి. ప్రస్తుతం, ఒక కొత్త GPS మెసేజ్ ఫార్మాట్ (CNAV) సమాంతరంగా ప్రవేశపెట్టబడింది, దీనిలో కౌంటర్ కోసం 13 బిట్‌లు కేటాయించబడ్డాయి (అనగా, ఓవర్‌ఫ్లో 2137లో మాత్రమే అంచనా వేయబడుతుంది).

GPSDలో, ఒక అదనపు సెకను యొక్క రూపాన్ని సర్దుబాటు చేసే లాజిక్‌లో (ప్రపంచపు సూచన పరమాణు గడియారాలను భూమి యొక్క ఖగోళ సమయంతో సమకాలీకరించడానికి జోడించబడింది), దీని కారణంగా అక్టోబర్ 24, 2021, 1024 నుండి అకాలంగా తీసివేయబడుతుంది వారం కౌంటర్. కోడ్ రచయిత ప్రకారం, షిఫ్ట్ డిసెంబర్ 31, 2022న జరిగి ఉండాలి, అయితే ఈ తేదీని వారాల సంఖ్యలోకి అనువదించడం సరిగ్గా జరగలేదు మరియు వాస్తవానికి చెక్‌లో ఇచ్చిన వారాల సంఖ్య అక్టోబర్ 2021 కిందకు వచ్చింది (సూచించిన విలువ 2180కి బదులుగా 2600). /* సానిటీ చెక్ వీక్ నంబర్, GPS ఎపోచ్, లీప్ సెకన్లకు వ్యతిరేకంగా * రిగ్రెషన్‌లతో సరిగ్గా పని చేయదు ఎందుకంటే leap_sconds * రిసీవర్ నుండి లేదా BUILD_LEAPSECONDS నుండి కావచ్చు. */ అయితే (0 < session->context->leap_seconds && 19 > session->context->leap_seconds && 2180 <week , దీన్ని అనుమతించవద్దు */ వారం -= 19; GPSD_LOG(LOG_WARN, &session->context->errout, "GPS వారం గందరగోళం. లీప్ %d\n కోసం సర్దుబాటు చేసిన వారం %u", వారం, సెషన్->సందర్భం->లీప్_సెకన్లు); }

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి