macOS tiene un límite oculto que Apple no quiere que sepas: cuando pasan 49,7 días, la conexión del Mac se desploma

macOS tiene un límite oculto
macOS tiene un límite ocultoComputer Hoy

macOS guarda un límite oculto que casi nadie conoce: cuando un Mac lleva encendido unos 49,7 días, su red empieza a fallar sin entenderse muy bien los motivos.

Si usas el Mac como servidor o simplemente eres de esas personas que lo deja encendido durante semanas, hay un punto importante que deberías saber y que casi no lo notas hasta que pasa. 

Si el equipo lleva exactamente 49 días, 17 horas, 2 minutos y 47 segundos sin reiniciarse, muchas partes de la red dejan de funcionar. El sistema parece que va bien, responde y sigue con las conexiones abiertas, pero ya no puede crear nuevas conexiones ni responder a muchas solicitudes.

Esta situación tan extraña ha sido descubierta por el Photon, que usa una gran cantidad de Mac para monitorear servicios de iMessage. Estos se encontraron con que, de pronto, algunos PC dejaban de aceptar nuevas conexiones mientras que, al mismo tiempo, reportaban todo como normal. La única solución que tenían era reiniciarlos.

Tras ver que este patrón no paraba de repetirse, Photon puso a varios equipos a investigar qué pasaba. Cuando unos Mac se acercaban al límite de ese famoso 49,7 días, montaron scripts para recrear el problema de forma controlada. 

Un bomba con una cuenta atrás de 49,7 días dentro de macOS

Y ahí vieron que, justo en el momento de caducidad, el Mac dejaba de aceptar nuevas conexiones, sin errores que se pudiesen ver, como si algo dentro hubiera decidido apagarse porque sí.

Al buscarlo, parece que el error estaba en un contador interno de la red de macOS, llamado tcp_now. Su función es simplemente la de guardar cuánto tiempo lleva el sistema encendido, desde el punto de vista de la pila de red TCP. El problema es que ese número está guardado en un entero de 32 bits sin signo, que tiene un límite de 4.294.967.295, y que, en milisegundos, equivalen a unos 49,7 días. Cuando se llega a ese número, el contador se reinicia de golpe a cero.

Pero aquí entra el fallo en concreto. El kernel XNU de Apple no implementa bien esa vuelta a cero. En vez de gestionar el proceso como debería, mantiene el valor en el tope y bloquea la lógica de cierre de conexiones. 

Esto al final, lo que provoca es que la red empiece a quedarse sin puertos temporales y se atasque sin poder crear nuevas, aunque el sistema parezca estar funcionando.

Un problema que viene de lejos y que ya sucedió con Windows 98

Lo cierto es que esto ya se vio en sistemas como Windows 98, que también se bloqueaba después de 49,7 días de encendido por el mismo tipo de problema. 

Por ahora, la única forma de corregir el problema es reiniciar el Mac de vez en cuando, preferiblemente antes de llegar al límite de 49,7 días sin apagado. Para servidores o máquinas de monitoreo, el tema es bastante más feo que para un usuario normal.

Por parte de Apple, parece que ya están manos a la obra para corregir el problema. Photon, por su lado, está colaborando con los de Cupertino para que la solución llegue antes y de una forma óptima. 

Más información sobre:

Ver sus artículos

Carolina González

Redactora

Carolina González, redactora de actualidad, reportajes a fondo, análisis de todo tipo de productos y vídeos para el canal de Youtube.