
49 jours, 17 heures, 2 minutes et 47,296 secondes. Au-delà, les MacBook voient leur réseau se gripper et les nouvelles connexions tomber à plat.
Le coupable est un compteur noyau 32 bits qui arrive en butée et fige la pile TCP/IP.
Bug macOS 49,7 jours : impact concret sur les MacBook
Les MacBook Neo, MacBook Air et la dernière série MacBook Neo sont affectés s’ils restent allumés en continu 49,7 jours. À l’instant précis des 4 294 967 295 millisecondes depuis le boot, la pile TCP/IP cesse d’établir de nouvelles connexions. Les sessions existantes continuent toutefois, et la machine répond au ping, mais lentement, brouillant le diagnostic.
La cause est identifiée dans le noyau XNU, via tcp_now, un entier non signé 32 bits censé mesurer le temps écoulé en millisecondes pour le stack TCP. Au débordement, le compteur se fige au lieu de repartir, cassant la logique d’expiration des connexions fermées. Les sessions inactives s’accumulent, la consommation CPU grimpe et l’épuisement du pool de ports, typiquement ~16 384, empêche toute nouvelle ouverture de socket.
Conséquences et contournements en environnement pro
Un simple redémarrage rétablit la situation, mais le problème réapparaît au même intervalle après 49,7 jours d’uptime. Pour les parcs avec postes longuement allumés, un reboot planifié avant l’échéance devient nécessaire. La Photon team, à l’origine de la découverte, prépare un correctif ciblé autour de tcp_now, potentiellement un patch noyau à chaud évitant le redémarrage.
Un passage à des entiers 64 bits réglerait structurellement le débordement, mais implique des changements plus profonds, des validations de perfs et un cycle de QA étendu. En attendant un correctif officiel, la discipline d’uptime et la télémétrie réseau aideront à prévenir la saturation des ports et les échecs d’ouverture de sessions.
Pour les équipes IT, ce bug rappelle que des compteurs 32 bits dans des chemins critiques réseau restent piégeux sur des durées d’uptime désormais banales, y compris sur des postes clients utilisés comme nœuds d’IA locale, serveurs de build ou machines de capture.
Source : TechPowerUp