Содержание
У macOS нашли странный баг с таймером: если MacBook работает без перезагрузки 49,7 дня, система перестаёт открывать новые TCP/IP-соединения. По сути, ноутбук остаётся «в сети», но новые подключения не поднимаются.
Проблему описала команда Photon. Речь про MacBook Neo, MacBook Air и актуальную линейку MacBook Neo. Симптомы выглядят как деградация сети и рост нагрузки, а лечится это банально — перезагрузкой.
Почему «отваливается» сеть ровно через 49 дней и 17 часов
Триггер срабатывает через 49 дней, 17 часов, 2 минуты и 47,296 секунды непрерывной работы. В этот момент в ядре macOS (XNU) упирается в потолок счётчик tcp_now — это 32-битное беззнаковое число, которое хранит миллисекунды с момента загрузки для TCP-стека.
Максимум такого счётчика — 4 294 967 295. По описанию Photon, когда tcp_now достигает предела, он не сбрасывается и «застывает». Из-за этого ломается арифметика, которой macOS «протухает» и вычищает закрытые соединения.
Дальше начинается эффект снежного кома. Закрытые сессии копятся, система тратит больше CPU на разбор очереди, а потом упирается в пул портов.
Как проявляется баг: пинг жив, а новые подключения нет
Ключевой момент: уже установленные соединения могут продолжать работать. Поэтому диагностика затягивается. Машина даже отвечает на ping, но заметно медленнее.
Когда накопившиеся «мёртвые» сессии забивают доступные порты, новые подключения перестают открываться. Photon приводит ориентир по пулу: обычно это около 16 384 портов. В этот момент начинают отваливаться приложения, которым нужен интернет: браузеры, мессенджеры, корпоративные клиенты и любые сервисы, которые постоянно создают новые TCP-сессии.
Что с исправлением и почему это не «одна строка кода»
Перезагрузка сбрасывает tcp_now и возвращает сеть в норму. Но баг повторится по тому же расписанию, если снова держать ноутбук включённым без ребута следующие 49,7 дня.
Теоретически проблему можно закрыть переходом на более широкий счётчик, например 64-битный. Но это уже изменения в коде ядра, которые нужно прогонять через тесты и проверку производительности. Photon отдельно подчёркивает, что это сложнее, чем «быстрый фикс».
Команда Photon готовит точечный обходной вариант, который должен разморозить tcp_now без перезагрузки — вероятно, в формате live-патча ядра или похожего механизма. Подробности они описали в своём разборе: Photon.
Дата публикации истории — 9 апреля 2026 года, и до выхода официального исправления Photon советует администраторам учитывать «обязательную» перезагрузку примерно раз в 49,7 дня, особенно в корпоративной среде.