В macOS нашли странный баг: если Mac работает без перезагрузки 49 дней, 17 часов, 2 минуты и 47 секунд, сетевые подключения по TCP могут перестать создаваться. Проблема упирается в integer overflow, а самый простой способ вернуть сеть — обычная перезагрузка.

О находке рассказала компания Photon, которая использует Mac для мониторинга сервиса Apple Messages. Photon смогла воспроизвести сбой на двух системах.

Что именно ломается через 49 дней аптайма

По описанию Photon, в какой-то момент непрерывной работы macOS сталкивается с переполнением целого числа, из-за чего «замерзает» внутренний TCP timestamp clock. Дальше цепочка событий уже почти механическая: существующие TCP-соединения не «протухают» как должны, остаются зависшими, и система постепенно забивает пул временных портов.

Продолжение после рекламы
Изображение к статье: В macOS нашли баг: сеть «умирает» через 49 дней без перезагрузки

Финал неприятный: новые TCP-соединения больше не устанавливаются. При этом ICMP (ping) продолжает работать, но «всё остальное умирает» — то есть прикладной интернет для пользователя и сервисов фактически пропадает.

Кому это реально может аукнуться

Для домашнего Mac это почти экзотика. Большинство людей перезагружают ноутбук хотя бы из-за обновлений, разряда, сна или банально потому что закрывают крышку и уезжают.

А вот в корпоративной среде такие баги всплывают чаще. Если Mac работает как узел мониторинга, тестовый стенд или машина под сервис, его могут держать включённым месяцами. В таком режиме «таймер на 49 дней» уже выглядит не как курьёз, а как риск простоя.

Изображение к статье: В macOS нашли баг: сеть «умирает» через 49 дней без перезагрузки

Почему это напоминает старые «аптайм-ловушки» Windows

Photon сравнила ситуацию с историческим багом Windows 95: там система могла «падать» примерно через 49,7 дня из-за переполнения 32-битного счётчика миллисекунд, что приводило к полному зависанию ПК. Механика другая, но идея та же: счётчик тикает, доходит до предела и «переворачивается».

Сейчас единственное подтверждённое решение для macOS — перезагрузка. Photon пишет, что работает над способом обойти проблему без ребута, но официального комментария Apple и сроков исправления в обновлениях пока нет.

Photon описала баг и его воспроизведение в своём посте: We found a ticking time bomb in macOS TCP networking.

Рейтинг: 0 / 5. Оценок: 0

Продолжение после рекламы

Рекомендуем почитать

Оставьте комментарий

Перед оставлением комментария, пожалуйста, ознакомьтесь с правилами комментирования.