Shop menü

A MACOS TIME BOMB BUGJA MIATT 49,7 NAPNYI FOLYAMATOS MŰKÖDÉS UTÁN „LEESNEK A HÁLÓZATRÓL" AZ APPLE MAC-JEI

Az alapvető problémát az okozza, hogy a TCP Stack esetében a rendszer indulása óta eltelt időt egy 32-bites unsigned integerben tárolja a rendszer, ami 49,7 nap után megtelik és ekkor kezdődnek a bajok.
Víg Ferenc (J.o.k.e.r)
Víg Ferenc (J.o.k.e.r)
A macOS Time Bomb bugja miatt 49,7 napnyi folyamatos működés után „leesnek a hálózatról" az Apple Mac-jei

Az Apple macOS operációs rendszere a jelek szerint tartalmaz egy felettébb érdekes hibát, ami miatt 49,7 napnyi folyamatos működés után elkezdenek hibákat produkálni a Mac-ek: romlik a teljesítményük, a hálózati kapcsolatok lassulnak, idővel pedig nem tudnak új hálózati kapcsolatokat létrehozni és a meglévők kiszolgálása sem működik tovább.

A fura bugra a Photon csapata figyelt fel, akik egy Mac konfigurációkból álló flottát üzemeltetnek arra a célra, hogy az iMessage szolgáltatást monitorozzák velük. A csapat azt vette észre, hogy ha huzamosabb időn át nincsenek újraindítva a Mac-ek, akkor egy idő után egészen egyszerűen használhatatlanná válnak. Első körben nem tudták hova tenni, miért lassulnak be az egyes rendszerek és miért veszítik el a hálózati kapcsolatot, noha a pingre még válaszoltak, de egyéb funkciók nem akartak működni. Mivel elsőre nem találták a hibát, frusztráló módon a rendszerek újraindítását kellett választaniuk, majd a hiba ismét előjött, így a probléma mélyére ástak.

Galéria megnyitása

Hamar kiderült, hogy a problémát a Unix alapú rendszer TCP/IP rétegéhez tartozó változó, a tcp_now okozza, amelynek feladata alap esetben az, hogy mérje, mennyi idő telt el a TCP/IP réteg elindítása óta, azaz a rendszer bootolása óta. Ez a változó egy 32-bites aláíratlan egész szám formájában, azaz unsigned 32-bit integerként kezeli az idő múlását, milliszekundumban mérve. A 32-bites alapok miatt a változó 49 nap 17 óra 2 perc és 47 másodperc után elér maximális értékét, majd nem nullázódik, ahogy az elvárható lenne, hanem lényegében befagy. Ez azért baj, mert a rendszer a lezárt TCP kapcsolatokat összegyűjti és eltávolítja bizonyos időközönként, ami a macOS esetében 30 másodperc, ehhez pedig a tcp_now változó értékét használja, ami ha betelik, a kapcsolatok lezárása sem működik tovább.

Ezt követően a rendszer processzorterhelése megnő, ahogy próbál zsonglőrködni a rendelkezésre álló szabad portokkal, amelyek száma ugyancsak véges, ez az extra terhelés pedig lassulás eredményez és idővel a TCP/IP réteg is összeomlik, ami a hálózati kommunikáció végét eredményezi. Az, hogy a tcp_now változó betelése és a teljesítménycsökkenés, illetve a hálózati kommunikáció megszűnése között mennyi idő telik el, attól függ, mekkora hálózati forgalom zajlik az adott rendszeren.

A Time Bomb bug néven emlegetett hiba a jelek szerint egyéb bugokkal is összefüggésben van, így  vélhetően hamar születik rá megoldás, igaz, az Apple csapata eddig hivatalos reakciót még nem fogalmazott meg az ügyben.

Hírlevél feliratkozás
A feliratkozással elfogadom a Felhasználási feltételeket és az Adatvédelmi nyilatkozatot.

Neked ajánljuk

    Tesztek

      Kapcsolódó cikkek

      Vissza az oldal tetejére