Перевод мировых атомных часов на одну секунду привёл к массовому зависанию серверных приложений

В полночь с 30 июня на 1 июля с целью синхронизации с астрономическим временем Земли эталонные мировые атомные часы были приостановлены на одну секунду, таким образом в последней минуте оказалось 61 секунда, а на некоторых часах можно было наблюдать волшебное время "23:59:60" или два раза по "23:59:59". Подобный шаг привёл к непредвиденному коллапсу многих приложений и сервисов. Проблема была вызвана зацикливанием из-за неготовности обработать появление лишней секунды. В большинстве систем, на которых проявилась проблема, была настроена синхронизация точного времени по NTP.

В итоге, испытывали проблемы с работой некоторые сайты (в том числе Reddit, LinkedIn и Mozilla), наблюдалось массовое зависание серверных приложений (в основном приложения работающие в Java VM, такие как Hadoop и Cassandra), начинала съедать все процессорные ресурсы СУБД MySQL, отключились VPN-туннели на базе OpеnVPN, зависали Linux-серверы с вручную собранным ядром.

В большинстве случаев администраторы были вынуждены перезапустить зависшие серверы. Тем не менее, для стабилизации некоторых приложений, начавших потреблять излишние ресурсы CPU, достаточно было вручную выставить корректное время через команду "date `date +"%m%d%H%M%C%y.%S"`". Для некоторых систем мог дополнительно потребоваться останов ntpd на время выполнения данной команды и перезапуск пожирающих CPU приложений. Интересно, что в системе отслеживания ошибок Red Hat информация о возможной проблеме была опубликована ещё в 2009 году и исправлена в RHEL 5.4 (дополнительно было опубликовано уведомление, что RHEL не подвержен проблеме). В марте 2012 года в ядре Linux была выявлена и исправлена проблема с зависанием при появлении лишней секунды на некоторых системах с таймером высокого разрешения (в большинство дистрибутивов данное исправление вошло, поэтому о зависании Linux-серверов в основном сообщают пользователи систем с необновлённым ванильным ядром, собранным вручную).

При этом, добавление лишней секунды для синхронизации времени с периодом вращения земли производится не в первый раз, прошлое прибавление состоялось 31 декабря 2008 года и обошлось без глобальных проблем. В прошлом году внимание к проблеме пыталась поднять компания Google, поделившись своим методом устранения негативного эффекта - разбиеним лишней секунды на большой интервал корректировки, с прибавлением каждый раз по миллисекунде, что приведёт к плавному размыванию секунды по большому отрезку времени.

Источник:
http://www.opennet.ru/opennews/art.shtml?num=34234

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>