
Apple si získal reputáciu vďaka ponuke stabilné, bezpečné a vysoko výkonné počítačeAle ani macOS nie je neomylný. Skupina výskumníkov odhalila dosť nepríjemnú chybu: ak Mac zostane zapnutý bez reštartovania niekoľko hodín... 49,7 dní v radeMôže sa stať, že stratíte možnosť otvárať nové internetové pripojenia.
Táto chyba ovplyvňuje Sieťový zásobník TCP/IP v systéme macOS Toto sa vyskytuje na stolných počítačoch aj notebookoch, od Macu mini a Macu Studio až po MacBook Air a MacBook Pro. Počítač sa stále javí ako pripojený, reaguje na pingy a dokonca udržiava niektoré relácie, ale prestáva nadväzovať nové pripojenia, čo je obzvlášť znepokojujúce v... servery, vývojové tímy a profesionálne prostredia v Európe kde sa počítače Mac používajú ako stále zapnuté počítače.
Porucha, ku ktorej dôjde po 49 dňoch, 17 hodinách, 2 minútach a 47 sekundách
Objav pochádza z Fotón, americká spoločnosť, ktorá integruje Agenti AI v službách zasielania správ a využíva farmy Mac na monitorovanie iMessage a nasadenie svojej platformy agentov OpenClaw. Po niekoľkých týždňoch nepretržitej činnosti niektoré z jeho Macov mini a Macov Studio Zrazu prestali prijímať sieťové pripojenia, hoci naďalej reagovali na základné kontroly.
Po prešetrení zistili, že problém sa vždy objavil, keď sa dosiahla veľmi špecifická doba prevádzkyschopnosti: 49 dní, 17 hodín, 2 minút a 47 sekúnd od posledného štartu. Práve v tej chvíli tímy, ktoré neustále vytvárali nové kontakty, jednoducho Prestali to robiť bez toho, aby prejavili akúkoľvek viditeľnú chybu.Reštartovanie obnovilo všetko do normálu, ale chyba sa objavila znova po ďalších 49,7 dňoch prevádzky.
Zaujímavé je, že chyba Nezávisí to od konkrétnej verzie systému macOSPodľa publikovaných analýz to ovplyvňuje moderné unixové systémy, od najnovších verzií až po súčasný macOS. Nezáleží na tom, či ide o MacBook najnovšej generácie alebo starší iMac. Dôležité je, ako dlho to bolo zapnuté bez reštartovania..
Pre mnohých domácich používateľov v Španielsku a zvyšku Európy sa to zdá nepravdepodobné, ale realita je taká, že je veľmi ľahké nahromadiť týždne aktivity, ak Stačí zatvoriť veko notebookuUspávate ho alebo odkladáte aktualizácie. Milióny ľudí si MacBooky takmer nevypínajú a práve tu môže nastať problém.
Príčina: preplnený interný 32-bitový počítadlo TCP
Koreň problému spočíva v tom, ako systém macOS meria čas v rámci svojho sieťového systému. Jadro XNU používa internú premennú s názvom tcp_now na sledovanie času v milisekundách od spustenia systému. Táto hodnota sa ukladá ako 32-bitové celé číslo bez znamienka, čo znamená, že môže dosiahnuť iba 4 294 967 295.
Ak sa toto číslo prevedie do reálneho času, matematika zodpovedá tomu, čo sa pozorovalo v testoch:
4 294 967 295 ms ≈ 49 dní, 17 hodín, 2 minúty a 47 sekúnd
Keď počítadlo dosiahne maximálnu hodnotu, návrat na nulu by mal byť spracovaný správne, ale v systéme macOS sa správanie neočakáva. Podľa Photonu a ďalších vývojárov chyba spôsobuje... Vnútorné hodiny TCP „zamrznú“ alebo začnú porovnávať čas chybne.aby logika, ktorá rozhoduje o vypršaní platnosti pripojení, prestala správne fungovať.
Toto počítadlo sa používa na viacero úloh vrátane čistenia starých pripojení a správy časovačov spojených s protokolom. pretečenie 32-bitového celého číslaTCP zásobník stráca svoju časovú referenciu a prestáva považovať určité komunikácie za ukončené, aj keď v skutočnosti skončili už pred nejakým časom.
Analýzy poukazujú na chybná implementácia štandardu TCP, najmä RFC 7323ktorý okrem iného reguluje správu časovačov a vysokovýkonné rozšírenia. Namiesto správneho recyklovania počítadla a pokračovania v pravidelných intervaloch v čistení pripojení systém udržiava aktívne položky, ktoré by tam už nemali byť.
Čo sa v praxi preruší: TIME_WAIT, efemérne porty a nové pripojenia
Aby ste pochopili skutočný dopad chyby, musíte sa pozrieť na stav TIME_WAIT protokolu TCP. Keď sa pripojenie ukončí, nezmizne náhle: na chvíľu (zvyčajne niekoľko minút) vstúpi do tejto čakacej fázy, aby sa zabezpečilo, že nezostanú žiadne pakety a aby sa predišlo zámene starej komunikácie s novou.
Za normálnych podmienok jadro macOS ide pravidelné odstraňovanie pripojení v čase TIME_WAIT ktoré už dosiahli svoj termín, čím sa uvoľňujú zdroje a predovšetkým tzv. efemérne porty, čo sú dočasné porty, ktoré systém používa na iniciovanie odchádzajúcich pripojení.
Keď interné hodiny spojené s tcp_now pretečú, toto čistenie prestane správne fungovať. Systém potom interpretuje tieto pripojenia ako uzavreté. Ešte nedosiahli dátum spotrebyPreto sa neodstraňujú. Záznamy sa hromadia v tabuľke pripojení a obsadzujú sokety a porty na neurčito.
macOS má zvyčajne nejaké 16 000 prchavých portov v ich predvolenom rozsahu (približne medzi portami 49.152 a 65.535). Keď sú tieto porty naplnené pripojeniami TIME_WAIT, ktoré nikdy nevypršia, Systém nedokáže otvoriť nové TCP pripojeniaOdtiaľ sa objavujú príznaky: chyby pri pripájaní k webovým stránkam, API, databázam, SSH tunelom a akejkoľvek službe, ktorá závisí od TCP.
Zaujímavé je, že paralelne s tým existujú aj iné funkcie, ako napr. ping (ICMP) Môžu naďalej fungovať. Preto sa pri rýchlej kontrole zdá, že Mac je online: reaguje na lokálnu sieť, dokáže udržiavať všetky otvorené relácie a ikona Wi-Fi alebo Ethernetu nezobrazuje žiadne problémy, ale z praktických dôvodov Neexistuje spôsob, ako nadviazať novú komunikáciu..
Starý známy: „chyba 49,7 dňa“ a ďalšie chyby v načasovaní
To, čo sa deje v systéme macOS, nie je ojedinelý jav. Je to klasický prípad... 32-bitové celočíselné pretečenie v počítadlách času, čo je skupina chýb, ktorá trápi softvérový priemysel už desaťročia.
V rokoch 90, Windows 95 a Windows 98 Trpeli takmer identickou chybou: po približne 49,7 dňoch prevádzky začal systém zlyhávať kvôli 32-bitovému milisekundovému počítadlu používanému určitými ovládačmi. Výpočet bol rovnaký: 2³² milisekúnd sa rovná týmto osudným 49,7 dňom. Microsoft tento problém nakoniec vyriešil v neskorších verziách, ako napríklad vo Windows XP.
Boli pozorované aj variácie tohto vzoru s inými intervalmi: v niektorých modernejších systémoch Windows spôsobovali počítadlá v zlomkoch sekundy podobné zlyhania po 497 dní prevádzkyschopnostia slávny problém roka 2038 V 32-bitovom Unixe reaguje na rovnaký koncept, v tomto prípade s sekundami z roku 1970, ktoré pretečú a generujú nemožné dátumy.
V systéme macOS vykazuje zistené správanie jasnú paralelu. Počítadlo tcp_now po dosiahnutí 32-bitového limitu... Nie je bezpečne recyklovateľné a nakoniec ovplyvňuje správu časovania subsystému TCP. Malý detail v návrhu sieťového zásobníka, ktorý sa po mesiaci a pol nepretržitej prevádzky premieta do kritického zlyhania pre akúkoľvek infraštruktúru závislú od internetu.
Pre inžinierske a prevádzkové tímy sa tento prípad už stal učebnicovým príkladom: tichá, časovo citlivá chyba, ktorú je ťažké diagnostikovať bez kontextu a ktorá je schopná vypnúť celé služby takmer bez spustenia akýchkoľvek alarmov v aplikačnej vrstve.
Kto si to najviac všíma: od serverov macOS až po notebooky, ktoré sa nikdy nevypínajú
V každodennej rutine typického používateľa, ktorý často vypína svoj Mac alebo inštaluje aktualizácie systému, si chyba pravdepodobne nevšimne. Avšak v profesionálne prostredie v Španielsku a Európe Ak sa systém macOS používa ako dlhodobý operačný systém, môže byť dopad vážny.
Medzi najcitlivejšie scenáre patria Mac mini a Mac Studio používané ako serveryTieto sú veľmi obľúbené v štúdiách pre vývoj aplikácií, kreatívnych agentúrach, softvérových spoločnostiach alebo dátových centrách, ktoré potrebujú hardvér Apple na vytváranie a testovanie aplikácií pre iPhone, iPad a Mac. Tieto stroje sú často zapnuté celé týždne alebo mesiace.
Zvýrazňujú tiež CI/CD bežce Na platformách ako GitHub Actions, GitLab CI alebo proprietárne riešenia kontinuálnej integrácie, ktoré sa spoliehajú na zariadenia s čipmi Apple Silicon (M1, M2, M3…) na generovanie natívnych zostavení, ak jeden z týchto uzlov dosiahne 49,7 dní prevádzkyschopnosti bez reštartu, môže prestať nadväzovať pripojenia k repozitárom, externým API alebo databázam priamo uprostred dôležitých nasadení.
Ďalším častým prípadom je pracovné stanice pre vývoj, dizajn, úpravu videa alebo zvuku ktoré sa zriedka vypínajú. V mnohých produkčných štúdiách alebo technických oddeleniach Mac v noci uspí, ale celé týždne sa nereštartuje, čo uľahčuje dosiahnutie chyby bez toho, aby si to niekto všimol.
A samozrejme sú tam aj MacBook na každodenné použitieJe neuveriteľne pohodlné zavrieť veko, uspať notebook a na druhý deň ho znova spustiť z rovnakého miesta. Pripočítajte k tomu určitú neochotu inštalovať aktualizácie, ktoré vyžadujú reštart, a niet divu, že notebook po mesiaci a pol používania začne vykazovať známky opotrebovania. zdanlivo náhodné zlyhania pripojenia: aplikácie, ktoré prestanú načítavať obsah, webové stránky, ktoré zamrznú, alebo cloudové služby, ktoré prestanú fungovať bez zjavného dôvodu.
Príznaky: Mac „má prístup na internet“, ale neotvorí nič nové
Pre tých, ktorí sa s chybou stretnú, je situácia dosť mätúca. Na jednej strane systém ukazuje, že je pripojené k sieti Wi-Fi alebo káblomKontrolky routera svietia a keď odošlete príkaz ping na iný počítač, dostanete odpoveď. Dokonca aj niektoré existujúce pripojenia, ako napríklad otvorená relácia SSH alebo prebiehajúci dátový stream, môžu chvíľu fungovať.
Zároveň začnú zlyhávať základné činnosti: webové stránky, ktoré sa nenačítavajúE-mailoví klienti, ktorí sa zaseknú pri pokuse o synchronizáciu, aplikácie závislé od externých rozhraní API, ktoré vyvolávajú chyby časového limitu, a interné služby, ktoré prestanú prijímať novú prevádzku.
V serveroch a produkčných prostrediach sa to prejavuje rôznymi problémami, ako napríklad Webové platformy, ktoré prestávajú zobrazovať požiadavkyFronty úloh, ktoré sa nevyprázdňujú, integrácie tretích strán, ktoré sa prerušujú, a kanály nasadenia, ktoré zlyhávajú pri pokuse o stiahnutie závislostí alebo nahranie artefaktov.
Nástroje na monitorovanie siete, ktoré používajú niektoré spoločnosti, vykazujú jasný vzorec: hneď po kritickej hranici 49,7 dňa sa počet pripojení v štáte TIME_WAIT Rýchlosť pripojenia sa začína stabilne zvyšovať, zatiaľ čo zásoba dostupných efemérnych portov sa zmenšuje, až kým sa úplne nezaplní. Systém používateľa na nič z toho neupozorní; jednoducho... Prestane byť schopný otvárať nové sockety.
Nie je nezvyčajné, že v tejto situácii je prvým podozrivým router alebo pripojenie poskytovateľa internetových služieb. Keď sa však skontrolujú ostatné zariadenia v rovnakej sieti (mobilné telefóny, tablety, iné počítače), zdá sa, že všetko funguje normálne. Vtedy sa zvyčajne objaví najjednoduchšie a paradoxne aj najúčinnejšie riešenie: Reštartujte Mac a uvidíte, ako všetko opäť funguje hladko..
Aké riešenia sú momentálne k dispozícii: reštartovanie a zmierňujúce opatrenia
K dnešnému dňu a podľa spoločnosti Photon aj ďalších vývojárov a systémových administrátorov, ktorí problém analyzovali, je jediným skutočne účinným spôsobom obnovenia normálnej prevádzky siete reštartujte počítačTento reštart vynuluje počítadlo tcp_now, vymaže pripojenia nahromadené v TIME_WAIT a umožní opätovné otvorenie TCP pripojení bez obmedzení.
Vďaka tomu sa chyba zmení na druh odpočítavacie hodiny Pre akúkoľvek infraštruktúru založenú na systéme macOS: ak je systému povolené bežať dlhšie ako 49,7 dňa prevádzkyschopnosti, nové pripojenia nakoniec prestanú fungovať. Kým Apple nevydá záplatu, ktorá upraví správanie jadra, je kľúčová prevencia.
Medzi zmierňujúcimi opatreniami odporúčanými v profesionálnom prostredí, a to v Španielsku aj vo zvyšku Európy, vyniká niekoľko postupov:
- Naplánujte si pravidelné reštartovanie Napríklad na serveroch macOS každých 30 alebo 40 dní, aby sa predišlo priblíženiu sa ku kritickej hranici.
- Monitorovanie prevádzkyschopnosti zariadenia a nakonfigurovať upozornenia, keď doba prevádzkyschopnosti prekročí určité limity, aby bolo možné naplánovať reštart v rámci údržbového okna.
- Monitorovanie počtu pripojení v čase TIME_WAIT a používanie efemérnych portov so sieťovými nástrojmi ako súčasť bežného monitorovania systému.
- V zmiešaných architektúrach, Presunutie serverových úloh na Linux alebo iné systémy keď nie je nevyhnutné používať macOS, vyhradenie počítačov Mac na zostavovanie, špecifické testy alebo úlohy na počítači.
Pre domácich používateľov sú odporúčania oveľa menej drastické. Stačí občas reštartujte MacNapríklad raz mesačne alebo počas aktualizácií systému. Okrem prevencie chyby tento zvyk pomáha vyčistiť procesy na pozadí a malé úniky pamäte, ktoré sa časom hromadia.
Je to problém s bezpečnosťou alebo stabilitou?
Zatiaľ panuje v technickej komunite konsenzus, že tzv. „49-dňová internetová chyba macOS“ Ide predovšetkým o problém stability a dostupnosti, nie o zraniteľnosť, ktorá umožňuje priame ovládanie zariadenia.
Neexistuje žiadny náznak toho, že by útočník mohol túto zraniteľnosť zneužiť na spustenie ľubovoľného kódu alebo na zvýšenie privilégií. Chyba sa správa skôr ako... podmienka nedobrovoľného odmietnutia službyKeď počítadlo pretečie a TCP zásobník prestane recyklovať pripojenia, samotný systém vyčerpá kapacitu na prijímanie novej komunikácie.
To neznamená, že vplyv je menší. Pre spoločnosti, ktoré pôsobia Služby 24/7 v systéme macOSVyčerpanie nových sieťových pripojení môže viesť k výpadkom služieb, narušeniam kritických procesov a strate dôvery zákazníkov a používateľov. Aj keď je riešenie také jednoduché ako reštart, škoda je už napáchaná, ak sa neodhalí včas.
Problém nahlásila spoločnosti Apple spoločnosť Photon a ďalšie zainteresované strany, ale momentálne... nebolo verejne zdokumentované špecifická náplasť Toto je uvedené v poznámkach k aktualizácii macOS. Medzi možné základné riešenia sa spomína použitie 64-bitových počítadiel alebo významnejšie zmeny jadra, ale akákoľvek takáto úprava si vyžaduje čas, testovanie a dôkladné overenie.
Kým čakajú na možnú oficiálnu opravu, mnohí administrátori sa rozhodli považovať túto chybu len za ďalšie operačné riziko: niečo, čo je zmierňuje pomocou postupov a monitorovaniarovnako ako sa to robí s inými limitmi kapacity alebo plánovanými oknami údržby.
Táto chyba v konečnom dôsledku slúži ako pripomienka, že aj systémy také vyleštené ako macOS majú skryté nedostatky. zdedené technické obmedzenia a konštrukčné rozhodnutia Tieto problémy sa prejavia iba vo veľmi špecifických scenároch, ako napríklad pri takmer 50-dňovom neprerušovanom chode počítača. Pre väčšinu používateľov to bude len anekdota, ale pre tých, ktorí sa spoliehajú na Macy ako servery alebo kritické pracovné stanice, sa monitorovanie prevádzkyschopnosti a plánovanie reštartov stalo nevyhnutnou súčasťou ich stratégie, ako sa vyhnúť prekvapeniam s internetovým pripojením.



