macOS ⚙ Bug Software Mai 2026 9 min citit
Alin Marin — CEO Radical Service
Alin Marin CEO Radical Service

Peste 12 ani experiență în reparații Apple • 25.000+ dispozitive reparate • ASE București

Bug-ul de 49 de zile pe macOS — de ce Mac-ul tău pierde net-ul după 7 săptămâni

Pe 9 aprilie 2026, compania Photon a publicat un raport tehnic despre un bug clasic de overflow pe 32-bit în kernelul macOS Tahoe: după 49 de zile, 17 ore, 2 minute și 47 de secunde de uptime continuu, Mac-ul nu mai poate stabili conexiuni TCP noi. Browser-ul se blochează, email-ul cade, dar ping-ul continuă să meargă. Apple n-a comentat. Articol tehnic complet — ce e bug-ul, pe cine afectează, cum verifici și cum repari.

Bug-ul de 49 de zile pe macOS — overflow TCP timestamp în kernel XNU
49 zile, 17h
pragul de uptime exact
2³²
milisecunde — limita uint32
macOS 26
Tahoe — versiune confirmată
Reboot
fix imediat — gratuit

Linistitor: nu pierzi date și nu se strică nimic fizic

Bug-ul e exclusiv la nivelul stack-ului de rețea — kernelul nu mai expiră vechile conexiuni TCP, deci nu mai poate deschide unele noi. Hardware-ul e perfect, fișierele sunt OK, datele nu se pierd. Un reboot resetează counter-ul și totul revine la normal. Articolul te plimbă prin diagnostic și prevenție.

Ce s-a întâmplat — pe scurt

Pe 9 aprilie 2026, echipa Photon (companie ce dezvoltă un framework pentru agenți software conectați la platforme de mesagerie) a publicat un raport detaliat: „We Found a Ticking Time Bomb in macOS TCP Networking". Au descoperit bug-ul pe propria flotă de servere de monitorizare iMessage și au reușit să-l reproducă pe alte 2 mașini. Trasarea problemei i-a dus la o singură linie de cod în XNU kernel — comparația care decide când o conexiune TCP în starea TIME_WAIT poate fi închisă.

#1

Descoperire publică: 9 aprilie 2026, de către Photon

Photon — o companie care dezvoltă un framework pentru agenți software conectați la platforme de mesagerie — a observat bug-ul pe propria flotă de monitorizare iMessage și l-a reprodus pe alte 2 mașini. Au tras totul la o singură comparație în codul-sursă XNU (kernelul macOS).

#2

Pragul exact: 49 de zile, 17 ore, 2 minute, 47 de secunde

După atâtea uptime continuu, un counter pe 32 de biți din kernel face overflow și „îngheață" ceasul intern de timestamp TCP. Practic, e exact 2³² milisecunde (4.294.967.295 ms ≈ 49,71 zile) — limita matematică a unui unsigned int 32-bit. Bug clasic de overflow.

#3

Simptomele: TCP cade, ping merge

După prag, conexiunile în starea TIME_WAIT nu mai expiră, porturile efemere se epuizează una câte una, iar Mac-ul nu mai poate stabili niciun TCP connection nou. Browsing-ul, email-ul, SSH, sync-ul iCloud — toate cad. ICMP (ping-ul) continuă să meargă, deci diagnosticul superficial spune „are net".

#4

Apple n-a confirmat (încă)

Niciun comunicat oficial, niciun feedback ID public, fix-ul nu apare în macOS 26.4.1 (lansat aprilie 2026). Comunitatea așteaptă fix în 26.5 — nu confirmat. Adam Engst (TidBITS) n-a găsit nicio discuție pe Apple Developer Forums.

Mecanismul tehnic — ce face overflow-ul

Kernelul XNU (folosit de macOS, iOS și watchOS, dar implementarea TCP diferă pe Mac) ține un counter intern de timestamp pentru fiecare conexiune TCP — folosit ca să decidă când o conexiune în starea TIME_WAIT poate fi „uitată" și resursele eliberate. Counter-ul e stocat ca unsigned 32-bit integer, în milisecunde de la pornirea sistemului.

Math-ul: 2³² milisecunde = 4.294.967.296 ms ÷ 1000 = 4.294.967 secunde ÷ 86.400 (secunde/zi) ≈ 49,71 zile. La acel moment exact (49 zile, 17 ore, 2 minute, 47 secunde), counter-ul wrapped la 0. Logica de cleanup care zice „dacă timestamp-ul vechi al conexiunii + 60 secunde < timpul curent, închide conexiunea" devine permanent falsă — pentru că timpul curent (resetat la 0) e mereu mai mic decât timestamp-ul vechi.

Consecința: vechile conexiuni TIME_WAIT nu mai sunt curățate niciodată. Fiecare nouă conexiune deschidită ocupă un port efemer din pool (49152-65535 pe macOS = ~16.000 disponibile). În câteva zile pe un sistem activ, pool-ul se golește. Mac-ul rămâne fără porturi efemere → orice nouă conexiune TCP eșuează. Browser-ul vede „connection refused" sau timeout, deși Wi-Fi-ul arată conectat și ping-ul către google.com merge perfect.

Stats tehnice — sumar

Trigger uptime 49 zile, 17h, 2m, 47s
Cauză tehnică Overflow uint32 în kernel XNU
Math underlying 2³² ms ≈ 4,29 mld milisecunde
Versiuni confirmate macOS 26 (Tahoe) — posibil și Catalina
Ce se rupe Conexiuni TCP noi (TIME_WAIT nu expiră)
Ce continuă să meargă ICMP / ping
Fix imediat Reboot — counter-ul resetează
Fix Apple oficial Așteptat în macOS 26.5 (neconfirmat)

Cine e afectat real

Pragul de 49 de zile pare mare, dar e fezabil pentru categorii specifice de utilizatori. Iată cine ar trebui să fie atent și cine poate ignora bug-ul fără frică:

#1

Mac servers care nu se reboot-ează

Cea mai expusă categorie. Mac mini sau Mac Studio configurat ca server de fișiere, build server, server media — care merge luni de zile fără pauză. Aici uptime-ul de peste 49 de zile e norma, nu excepția.

#2

Mac mini ca AI bench / inference server

Trend recent: Mac mini cu 64GB RAM unified folosit pentru rulat modele AI local (Ollama, LM Studio). Lăsat zile în șir cu sesiuni active. Categoric afectat.

#3

Workstații dev pe proiecte lungi

Programatori care nu închid Mac-ul săptămâni întregi pentru că au environment de dezvoltare complex (multi-tab, IDE-uri, simulatoare, container-e Docker). Reboot înseamnă ore de re-setup. Mulți preferă să-l țină pornit.

#4

Useri obișnuiți: NU sunt afectați practic

Pe un MacBook obișnuit, security updates apar o dată la 3-6 săptămâni și forțează reboot. Plus că laptop-urile dorm zilnic — sleep-ul nu contribuie la uptime în același ritm. Pragul de 49 de zile e foarte greu de atins.

Cum verifici și cum repari — 5 pași

Procesul e banal — Terminal, o comandă, eventual un reboot. Sub 5 minute total.

1

Deschide Terminal

Spotlight (Cmd+Space) → tipărește „Terminal" → Enter. Sau Aplicații → Utilitare → Terminal.

2

Tipărește comanda uptime și apasă Enter

Comanda exactă: uptime. Vei vedea ceva de forma „16:42 up 23 days, 5:14, 3 users, load average...". Numărul de „days" e cât a stat aprins Mac-ul de la ultimul reboot.

3

Compară cu pragul de 49 zile

Sub 30 zile — total în siguranță. Între 30-45 zile — fii atent, programează un reboot. Între 45-49 zile — reboot urgent. Peste 49 zile — probabil deja ai simptome (browser care nu mai încarcă, app-uri care eșuează la conexiune, deși ping merge).

4

Reboot complet (nu doar logout/sleep)

Apple → Restart. NU folosi „Sleep" sau „Logout" — counter-ul kernel rămâne activ. Doar un reboot full sau shutdown + start resetează counter-ul TCP timestamp.

5

Pentru Mac servers — programează reboot lunar

Dacă folosești Mac-ul ca server permanent, setează un reboot automat lunar (sub 30 zile interval). Se poate face cu launchd / cron sau prin Energy Saver → Schedule. Asta elimină riscul indiferent dacă Apple lansează fix-ul sau nu.

Context istoric — bug-ul ăsta nu e nou în computing

Overflow-ul de counter pe 32-bit la ~49,7 zile e o clasă întreagă de bug-uri care a afectat sisteme operaționale și echipamente de rețea timp de decenii. Apple nu e prima victimă — și probabil nici ultima.

1

Windows 95

Bug aproape identic — counter de uptime pe 32-bit, crash la ~49,7 zile. Microsoft a recunoscut public și a lansat patch în 1999. Devenise meme între sysadmin-i.

2

VAX/VMS (Digital Equipment, anii '80)

Counter pe 32-bit dar în zecimi de milisecundă — overflow la ~497 zile. Mai rar întâlnit pentru că nimeni nu păstra un VAX pornit atâta timp fără pauze de mentenanță.

3

Cisco IOS (anumite versiuni)

Bug similar de overflow uptime care afecta routere de production. Reboot programat la fiecare 24 zile devenise practica standard în multe data centers.

Lecția pentru Apple: bug-ul ar fi putut fi prevenit cu un counter pe 64-bit (limită ~584 milioane de ani — practic infinit) sau cu logică explicită de wrap-around. Faptul că un sistem operațional modern încă folosește uint32 pentru counter-uri de timp e o decizie surprinzătoare în 2026.

Atenție: dacă reboot-ul NU rezolvă, e altă problemă

Dacă ai făcut reboot și Mac-ul tot are probleme — sau, mai grav, MacBook-ul tău M2/M3 nu mai pornește deloc după un update macOS Tahoe — nu e bug-ul de 49 de zile. E posibil să fii afectat de bug-ul Tahoe Bricked Fix, complet diferit, care brick-uiește placa de bază a MacBook-urilor M2 și M3 după update-ul la macOS 26.4 / 26.4.1. DFU Revive eșuează, Apple Configurator dă erori 4013/4014. Acest bug NU se repară prin reboot — necesită intervenție de service la nivel firmware. Noi îl reparăm în 24h, păstrăm placa originală și datele tale. Citește ghidul complet aici.

Bug-ul de 49 de zile — fix gratuit (reboot), articol pur educațional.
Bug-ul Tahoe Bricked (MacBook M2/M3 mort după update) — articolul nostru tehnic, reparație în 24h.
Alte probleme post-update — diagnostic gratuit, ne suni la 0739.795.800.

Întrebări frecvente

Cum știu sigur dacă am bug-ul de 49 de zile sau e altceva?
Test simplu: deschide Terminal și rulează „uptime". Dacă numărul de zile e sub 49 și totuși ai probleme de rețea, NU e bug-ul ăsta — caută altceva (Wi-Fi, DNS, VPN, firewall). Dacă uptime e peste 49 zile și ai simptomul clasic („ping merge dar browser nu încarcă"), un reboot îți confirmă diagnosticul: dacă după reboot totul revine la normal, era exact bug-ul.
Sleep contează ca uptime?
Da, dar mai puțin agresiv. Counter-ul intern continuă să avanseze în timpul sleep-ului, dar nu la aceeași rată ca în utilizare activă. Practic, dacă MacBook-ul tău doarme 8 ore pe noapte, atingerea pragului de 49 zile poate dura 70-100 de zile reale calendaristice. Pentru certitudine — verifică „uptime" în Terminal.
macOS 26.4.1 a reparat bug-ul?
Nu. Update-ul 26.4.1 din aprilie 2026 a reparat alte probleme (sync iCloud) dar nu și bug-ul de 49 zile. Comunitatea tech (TidBITS, Six Colors) a confirmat că issue-ul rămâne. Apple e așteptat să lanseze fix în macOS 26.5 — fără confirmare oficială.
Versiunile mai vechi de macOS sunt afectate?
Engst (TidBITS) crede că bug-ul e introdus în macOS 26 (Tahoe). Michael Tsai pe blog-ul lui sugerează că ar putea exista din macOS 10.15 Catalina, dar nimeni n-a confirmat practic pe versiuni mai vechi. Dacă ai macOS Sonoma, Sequoia sau mai vechi și uptime peste 49 zile fără probleme — ești în clar.
Pot face ceva preventiv în afară de reboot?
Nu real. Bug-ul e în kernel — singurul mod să resetezi counter-ul fără reboot ar fi un kext care manipulează direct memoria kernelului, lucru pe care Apple îl blochează din motive de securitate. Soluția practică: reboot programat la 30 de zile pentru orice Mac care e ținut pornit constant.
Ce face Radical Service în acest caz?
Pentru bug-ul ăsta NU e nevoie de service — e un soft fix banal (reboot). Articolul ăsta e pur educațional ca să-ți permită să diagnostichezi singur. DAR: dacă reboot-ul nu rezolvă simptomele tale, problema e altceva și venim noi în discuție. Diagnostic gratuit. Mai ales dacă MacBook-ul tău M2 sau M3 a încetat brusc să mai pornească după un update macOS Tahoe — asta e bug-ul Tahoe Bricked, complet diferit, pe care îl reparăm la nivel firmware.
Bug-ul ăsta afectează și iPhone, iPad sau Apple Watch?
Nu — e specific macOS, în kernelul XNU folosit pe Mac. iOS, iPadOS și watchOS folosesc variante diferite ale kernelului și au mecanisme diferite de gestionare uptime (plus device-urile mobile fac restart automat la update-uri OTA mult mai frecvent). Niciun raport public despre bug similar pe iPhone/iPad/Watch.
Există vreun risc real (loss of data, hardware damage)?
Niciunul. Bug-ul e exclusiv pe stratul de rețea — Mac-ul rulează normal, fișierele sunt OK, hardware-ul e neafectat. Singurul efect: nu mai poți deschide conexiuni TCP noi. Browser, email, sync — cad. Reboot-ul rezolvă fără pierderi.

Surse

Resurse utile

Diagnostic & Reparație

Reboot-ul nu rezolvă problema? Hai la diagnostic.

Dacă ai făcut restart și Mac-ul tot se comportă straniu — sau dacă e bug-ul Tahoe Bricked care brick-uiește MacBook-urile M2/M3, problema cere intervenție de service. Diagnostic gratuit, fără presiune. Ne suni, vedem împreună.