Баг macOS блокирует новые сетевые соединения после 49 дней работы

В macOS обнаружена ошибка на уровне ядра, из-за которой система перестает устанавливать новые сетевые соединения после примерно 49 дней непрерывной работы устройства.

Проблема связана с переполнением 32-битного целочисленного счетчика в ядре XNU. Этот счетчик используется в TCP/IP-стеке для отслеживания времени в миллисекундах с момента загрузки системы. Максимальное значение такого счетчика составляет 4 294 967 295, что соответствует примерно 49 дням, 17 часам, 2 минутам и 47 секундам.

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

Это приводит к тому, что закрытые соединения не удаляются. Они остаются в состоянии TIME_WAIT и продолжают занимать временные порты. Со временем все доступные порты исчерпываются, и стек TCP/IP перестает принимать новые подключения.

При этом уже установленные соединения могут продолжать работать, что усложняет диагностику. Устройство может отвечать на ping, но любые новые сетевые запросы начинают завершаться с ошибками или вовсе не выполняются.

Исследователи из Photon воспроизвели проблему в контролируемых условиях. При достижении порога в 49,7 дня системы стабильно переставали инициировать новые подключения без каких-либо сообщений об ошибке.

На данный момент Apple не выпустила исправление. Единственный способ восстановить работоспособность сети это перезагрузить устройство. Однако это временное решение: после следующего непрерывного периода в 49 дней проблема повторяется.

Источник: TechSpot

Похожие статьи

Технологии и IT-новости 4 месяца назад

Tinder использует ИИ для борьбы с усталостью от свайпов

Tinder внедряет инструменты на базе искусственного интеллекта, чтобы снизить усталость пользователей от бесконечного свайпинга и вернуть интерес к онлайн-знакомствам. Компания делает ставку на персонализированный подбор и более осмысленные совпадения.

Технологии и IT-новости 2 месяца назад

Google представила TurboQuant: снижение памяти LLM в 6 раз без потери точности

Google представила TurboQuant - алгоритм сжатия, который уменьшает использование памяти LLM в шесть раз без потери точности. Технология также ускоряет вычисления и снижает требования к инфраструктуре.

Технологии и IT-новости 3 месяца назад

Новый шаг для WebAssembly: модель компонентов может улучшить интеграцию с вебом

Новая архитектура WebAssembly Component Model может значительно улучшить интеграцию Wasm с веб-платформой. Разработчики рассчитывают, что она упростит создание библиотек и приложений на WebAssembly.