Специалисты Photon нашли необычную проблему в macOS: спустя 49 дней, 17 часов, 2 минуты и 47 секунд непрерывной работы в системе замораживается фреймворк TCP, из-за чего становится невозможно установить соединение с интернетом. Проблема решается перезагрузкой, но после этого отсчёт стартует снова.
Виновником оказался механизм tcp_now, отслеживающий время в механизме TCР. Дело в том, что у этого счётчика есть предельное время, после которого он будет переполнен — это время составляет 4 294 967 секунд.
Операционные системы собирают и удаляют закрытые TCP-соединения спустя короткое время, в случае macOS это время составляет 30 секунд. При попытке очистить неактивные соединения, когда tcp_now близок к своему предельному значению, приводит к тому, что время закрытия соединения рассчитывается именно по этому числу, и эти соединения не закрываются, после чего стек TCP переполняется, и новое соединение становится невозможно установить.
Когда-то такой же проблеме была подвержена Windows 98 — спустя те же ~49 дней система могла зависнуть из-за переполнения счётчика.
Специалисты пришли к выводу, что в Apple никто не тестировал macOS на протяжении 49 дней непрерывной работы, поэтому ошибка не была выявлена.