Домой Новости Софт и сервисы Критический баг macOS: система не выдерживает более 50 дней аптайма

Критический баг macOS: система не выдерживает более 50 дней аптайма

Ограничение в 49 дней вызвано переполнением 32-битного счетчика времени

Почему macOS «умирает» после 49 дней работы

В операционной системе macOS выявлена любопытная программная ошибка, которая делает невозможной полноценную эксплуатацию системы без перезагрузки на протяжении более 50 дней.

Точный предел стабильности macOS составляет 49 дней, 17 часов, 2 минуты и 47 секунд. По истечении этого времени система формально остается включенной, однако ее функциональность критически нарушается: из строя выходит сетевой стек TCP/IP, что делает дальнейшую работу практически невозможной.

Расследование Photon: в чем причина сбоев

Проблема была зафиксирована специалистами компании Photon. Они начали детальное исследование после того, как в парке компьютеров Mac, отвечающих за мониторинг сервисов iMessage, возникли повторяющиеся технические неполадки.

Интерфейс macOS и сетевые настройки
Фото Photon Источник: ixbt.com

Выяснилось, что компьютеры переставали принимать новые сетевые подключения, при этом они исправно отвечали на запросы ping, а уже установленные соединения продолжали поддерживаться. Единственным способом «оживить» систему была полная перезагрузка.

Виновник — переполнение счетчика tcp_now

Глубинный анализ показал, что причиной сбоя является внутренний счетчик tcp_now, который неизбежно достигает критического значения переполнения.

Функция tcp_now отвечает за отсчет времени с момента запуска системы для нужд TCP-стека с точностью до миллисекунды. Данный параметр представлен 32-битным беззнаковым целым числом:

  • Максимальное значение: 4 294 967 295 (2^32 – 1).
  • Лимит в миллисекундах: 4 294 967 295.
  • Итоговое время: 49 дней, 17 часов, 2 минуты и 47 секунд.

При достижении этого порога счетчик обнуляется, что приводит к краху сетевых функций macOS. Ожидается, что Apple выпустит соответствующее исправление в ближайших обновлениях, хотя сам факт обнаружения столь «древней» ошибки спустя годы использования системы вызывает удивление.

Источник: https://www.ixbt.com