Сегодня 03 апреля 2025
18+
MWC 2018 2018 Computex IFA 2018
реклама
Новости Software

Программисты «Яндекса» чуть не лишили всех точного времени

Из-за ошибки, допущенной при разработке обновления прошивки для умных колонок «Яндекс Станция», образовалась аномально высокая загрузка на NTP-серверы (Network Time Protocol) в российском сегменте интернета — эти ресурсы используются для синхронизации времени. Компания обнаружила ошибку далеко не сразу, но перечислила меры, которые не допустят её повторения.

 Источник изображения: yandex.ru

Источник изображений: «Яндекс»

В середине октября один из добровольцев, который организовал NTP-сервер на своём домашнем маршрутизаторе, обнаружил, что канал устройства забит запросами. Обновление прошивки и перезагрузка проблемы не решили, но она исчезла после отключения NTP. Далее выяснилось, что с середины октября прекратили работу 120 из 140 российских NTP-серверов. Доброволец призвал сообщество «Хабра» в качестве временной меры запустить у отечественных провайдеров NTP-серверы на виртуальных машинах за минимальную плату — помимо рядовых пользователей, откликнулся крупный облачный оператор, который выделил сразу 30 виртуальных машин.

Виновником оказалась компания «Яндекс», которая в середине октября начала развёртывать новую прошивку для умных колонок серии «Станция». Прошивка этих устройств содержит стандартный клиент синхронизации времени. В штатном режиме она производится каждые пять часов, но в случае неудачной попытки повторная предпринимается через пять секунд. Из-за ошибки в одном из связанных с клиентом модулей все устройства с обновлённой прошивкой начали вне зависимости от результата предыдущей попытки синхронизировать время каждые пять секунд — напомним, только за первые девять месяцев 2024 года было продано, по оценкам, около 3 млн «Яндекс Станций».

На начальном этапе «Яндекс» развернул прошивку на 10 % устройств — это стандартная мера для того, чтобы выявлять ошибки на ранних стадиях. Но в стандартной схеме обнаружения ошибок на тот момент отсутствовала метрика NTP-запросов, и к 24 октября прошивка распространилась на 100 % устройств. Первые жалобы на избыточное число NTP-запросов начали поступать 10 ноября — обычно этот симптом объясняется проблемами на стороне пользователя, и из-за небольшого объёма жалоб приоритет у проблемы был невысоким. Ошибку удалось обнаружить лишь 20 ноября — к этому моменту её исправили и начали готовить новый выход прошивки.

Но тянуть время уже было нельзя, потому что к выходным 23 и 24 ноября в Сети оставалось всего четыре сервера. Поэтому в качестве временной меры «Яндекс» выпустил хотфикс — экстренное обновление, которое увеличивало период обращения с 5 до 600 секунд. Нагрузка на NTP-серверы, таким образом, снижалась в 120 раз, но если какая-то из «Яндекс Станций» после включения не могла синхронизировать время с первой попытки, то в последующие 10 минут её связанные со временем функции оказывались недоступными. Это помогло стабилизировать ситуацию — к тому моменту начали запускать NTP-серверы члены сообщества «Хабра».

Чтобы не допустить повторения инцидента в дальнейшем, в «Яндексе» решили принять несколько мер:

  • выделить несколько ресурсов компании в общий пул NTP-серверов;
  • организовать для своих устройств отдельную зону NTP-серверов;
  • осуществлять мониторинг связанных с NTP метрик при выпуске новых и обновлении старых продуктов;
  • усовершенствовать механизмы обратной связи с пользователями, чтобы эффективнее выявлять подобные проблемы.

Источник:

Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Материалы по теме

window-new
Soft
Hard
Тренды 🔥
Самые полные издания Borderlands 3 и Diablo III добавят в Game Pass, а лучшая игра 2024 года по версии 3DNews подписку скоро покинет 10 ч.
«Эпический» сериал Netflix по Assassin’s Creed впервые за несколько лет подал признаки жизни 10 ч.
Спустя 10 лет после релиза Enter the Gungeon получит «крупнокалиберный сиквел» — первый трейлер и подробности Enter the Gungeon 2 12 ч.
Роскомнадзор порекомендовал отказаться от использования решения Cloudflare, нарушающего законы РФ 13 ч.
«Наш контент бесплатный, а инфраструктура — нет»: ИИ-боты разоряют «Википедию» 13 ч.
Nintendo поднимет цены на игры раньше Take-Two с GTA VI — Mario Kart World для Switch 2 будет стоить $80 в «цифре» и $90 в рознице 13 ч.
Роскомнадзор наделил себя правом собирать IP-адреса россиян 14 ч.
«Торт не был ложью!»: Nintendo подтвердила релиз Hollow Knight: Silksong в 2025 году и показала 5 секунд геймплея 15 ч.
Adobe придумала монтаж без пересъёмок: Premiere Pro 25.2 получил ИИ, который добавит ролику недостающие кадры 15 ч.
FromSoftware анонсировала мультиплеерный боевик The Duskbloods, который выглядит как смесь Elden Ring и Bloodborne — это эксклюзив Nintendo Switch 2 16 ч.