Keista macOS klaida yra tiksinti bomba paveikianti tinklo galimybes, jei Mac įjungtas per ilgai

Tema: 

Didelė dalis „Mac“ naudotojų savo kompiuterių neišjungia mėnesių mėnesius. Tačiau toks, atrodytų, visiškai logiškas veiksmas, turi ir paslėptą „kiaulę“.

Ar kada nors susimąstėte, kas nutiktų, jei „Mac“ kompiuterį paliktumėte įjungtą keliems mėnesiams be pertraukos? Greičiausiai ne – tačiau pasirodo, kad tokiu atveju operacinės sistemos tinklo funkcijos gali tiesiog nustoti veikti.

„Photon“ savo tinklaraštyje aprašė, kad aptiko tiksinčią bombą macOS TCP tinklo veikime – programinio kodo dalį, kuri „detonuoja po lygiai 49 dienų“. Tiksliau – po 49 dienų, 17 valandų, 2 minučių ir 47 sekundžių. Kai „macOS“ be pertraukos veikia tiek laiko, operacinėje sistemoje įvyksta vadinamasis „integer overflow“ („sveikojo skaičiaus perpildymas“), kuris „užšaldo vidinį TCP laiko žymų laikrodį“.

Kai tai nutinka, esami TCP tinklo ryšiai nebeužsidaro taip, kaip turėtų – jie lieka „užšalę“, o laikui bėgant, kaip aiškina „Photon“: „laikini prievadai (ephemeral ports) pamažu išsenka, ir galiausiai nebeįmanoma sukurti naujų TCP ryšių. ICMP („ping“) ir toliau veikia. Visa kita – miršta.“

Trumpai tariant, „Mac“ tinklo funkcijos visiškai nustoja veikti, o vienintelis sprendimas – perkrauti kompiuterį. Taip, klasikinis „išjunkite ir vėl įjunkite“.

„Photon“ – įmonė, kurianti dirbtinio intelekto agentų sprendimus – šią klaidą aptiko „Mac“ kompiuteriuose, naudojamuose „Apple“ „Messages“ paslaugos stebėjimui, ir sugebėjo ją atkartoti dviejose sistemose.

Akivaizdu, kad nemažai daliai „Mac“ naudotojų tai nėra aktuali problema – jie nepalieka kompiuterio įjungto 50 dienų be pertraukos, tačiau nemaža dalis „Mac“ naudotojų savo kompiuterių neišjunginėja ir perkrauna juos tik tada kai tam yra poreikis, pavyzdžiui įdiegus „Apple“ išleidstą „macOS“ atnaujinimą. Jei esate vienas tų, kaip ir aš, kurie savo „Mac“ neišjungia – bent jau žinosite, ko tikėtis ir kaip spręsti problemą. Ši klaida labiausiai aktuali serveriams ar verslo sistemoms, kurios veikia nepertraukiamai ilgą laiką.

Pagrindinė problemos priežastis – minėtas „integer overflow“. Tai situacija, kai sistema daro prielaidą, jog skaitiklis tik didės, tačiau iš tikrųjų po tam tikro laiko jis „apsisuka“ ir grįžta į nulį. Panaši problema anksčiau buvo pasitaikiusi ir „Microsoft“ – pavyzdžiui, „Windows 95“ patirdavo gedimą po maždaug 49,7 dienos dėl 32 bitų laikmačio perpildymo, kuris visiškai „pakabindavo“ kompiuterį.

Skelbiama, kad „Photon“ jau kuria sprendimą, kuris leistų išvengti būtinybės perkrauti „Mac“. Tikėtina, kad dabar, kai apie šią klaidą sužinojo „Apple“, oficialus pataisymas taip pat pasirodys artimiausiu metu.

Apytikslis skaitymo laikas – 1 minutė.
Pasidalinkite straipsniu:
Apie Ramūną Blavaščiūną

Fotografijos, geros technikos ir kavos mylėtojas, didelę savo laisvalaikio dalį skiriantis straipsnių „Mac Arena“ rašymui.