macOS не способна работать без перерывов дольше, чем 49 дней и 17 часов. В системе нашли необычный баг, который делает это невозможным

в 8:08, , рубрики: Новости

В операционной системе macOS нашли очень занятный баг, который не позволяет системе полноценно работать более 50 дней без перезагрузок.

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

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

macOS не способна работать без перерывов дольше, чем 49 дней и 17 часов. В системе нашли необычный баг, который делает это невозможным - 1
Фото Photon

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

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

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

Задача tcp_now — отслеживать текущее время с момента загрузки для стека TCP с точностью до миллисекунды. tcp_now представляется в виде 32-битного беззнакового целого числа, максимальное значение которого составляет 4 294 967 295 (2^32 - 1), после чего оно обнуляется. Поскольку он отслеживает миллисекунды, максимальное значение tcp_now составляет 4 294 967 секунд, то есть те самые 49 дней 17 часов 2 минуты и 47 секунд.

Скорее всего, Apple легко исправит проблему, но занятно, что её обнаружили только сейчас.

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js