Заголовки

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

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

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

Компьютеры сохраняли существующие сетевые соединения, что делало ситуацию ещё более загадочной. Для устранения неполадок специалистам пришлось перезагрузить системы. В результате другой группе ПК также пришлось столкнуться с аналогичной проблемой. После продолжительных исследований было установлено, что причиной сбоя является внутренний счетчик tcp_now, который претерпевает переполнение.

Этот счетчик отслеживает текущее время с момента загрузки для стека TCP с точностью до миллисекунды и представлен в виде 32-битного беззнакового целого числа. Максимальное значение tcp_now составляет 4 294 967 секунд, что и соответствует 49 дням, 17 часам, 2 минутам и 47 секундам. Вероятно, Apple сможет быстро устранить эту проблему, но удивляет, что она была обнаружена лишь сейчас.