Кратко

  • В описании RIPE Atlas 5130 сказано: 5120 выдавал половину round-trip time вместо смещения NTP-часов. offset версии 5120 неверен, а rtt этим регрессом не затронут.
  • Снимок публичного API на 31 августа, 03:12 UTC, показал 2721 запись probe со статусом Connected и версией 5120, 2350 с 5130 и 14680 подключённых записей всего.
  • 2721 — не число плохих измерений. Однако сырые NTP-результаты уже содержат fw, prb_id и время, поэтому строки 5120 можно находить и исключать.
  • Нужен машиночитаемый erratum: поле и схема, фактические границы, допустимое действие, новая версия и история редакций. Учёт rollout должен оставаться отдельным.

Ошибочная строка всё равно остаётся доказательством

Признать значение offset неправильным — не значит сделать вид, будто его никогда не существовало. Сырая строка фиксирует поведение конкретного исполняемого кода в конкретный момент. Если RIPE Atlas молча заменит значение, будущий исследователь потеряет возможность воспроизвести исходный набор и проверить, какая коррекция была применена.

Правильная конструкция состоит из двух слоёв. Оригинал хранится без изменений. Отфильтрованное или пересчитанное представление ссылается на идентификатор erratum, его редакцию, операцию и время создания. Тогда ошибка не легитимизируется, а становится наблюдаемым состоянием данных.

Для этого у Atlas уже есть важная основа. Формат NTP-результата включает fw, prb_id и timestamp. offset отделён от rtt; также сохранены origin, receive, transmit и final timestamps. Зная предупреждение о 5120, потребитель может исключить соответствующие строки, не устанавливая личность владельца probe.

5130 разделил неверное и пригодное

Firmware 5130, опубликованный 12 августа 2026 года, описывает регресс точно: код 5120 сообщал половину RTT как offset. Затем RIPE NCC отдельно пишет, что NTP offsets от 5120 неверны, а reported RTT не затронут.

Это ограничение защищает от чрезмерной реакции. Нет основания объявлять неверными другие типы измерений с той же probe. Нельзя переносить дефект на RTT. Нельзя считать каждый результатный field испорченным.

Но точное описание дефекта ещё не является договором пересчёта. Фраза «половина RTT» не доказывает, что всякий сохранённый offset безопасно исправить одной арифметической операцией. Error-ответы, retries, архитектуры и границы смены версий требуют формального selector и проверенного алгоритма. До его публикации консервативное действие — исключение 5120 offset, а не самодельная подмена.

У ошибки было два разных облика

Публичный issue 130 открыли 11 июля 2025 года. Первоначальный отчёт говорил, что четыре NTP timestamps корректны, но в формуле offset используются в обратном порядке, поэтому знак противоположен RFC.

29 октября 2025 года software-probe release 5120 заявил об исправлении NTP offset. Релиз относился только к software probes. Комментарий RIPE NCC в тот же день указал commit и назвал проблему исправленной.

23 июля 2026 года issue открыли заново во время тестирования 5130. Maintainer написал, что предыдущий commit мог не решить проблему и, возможно, ухудшил её. Предложенный patch рассчитывал delay и offset отдельно по четырём 64-bit fixed-point timestamps и формулам RFC 5905.

5130 закрыл issue с commit 197b599a7faa811d97ebd273078be176842264bb. Поэтому исходная ошибка знака и регресс 5120 «половина RTT» — не один и тот же дефект. Историческая коррекция обязана различать, какой код создал строку.

Тысячи подключённых — не тысячи плохих измерений

В 03:12 UTC 31 августа запрос firmware_version=5120&status=1 вернул 2721 запись. В ответе status 1 называется Connected. Параллельный запрос к 5130 дал 2350, а ко всем Connected — 14680. Доля 5120 в таком знаменателе составила около 18,5%.

Этот показатель описывает software state реестра probes. Он не показывает, выполняла ли каждая probe NTP, сколько результатов создала, сколько уникальных операторов стоит за записями и почему обновление не произошло. Счётчик может измениться в следующую минуту.

Его значение уже: спустя девятнадцать дней после публикации 5130 версия с признанным ошибочным offset всё ещё была состоянием тысяч подключённых записей. Release и внедрение расходятся по времени, а архив результатов живёт по третьему календарю.

Даты release не задают окно каждой probe

Дата 29 октября 2025 года не доказывает, что все software probes тогда же установили 5120. Дата 12 августа 2026 года не доказывает, что они покинули 5120. Снимок на 31 августа прямо показывает сохранение старой версии.

Машиночитаемый erratum должен содержать устойчивый ID и revision; продукт и result schema; firmware 5120 и платформенный охват; result[].offset; явно не затронутый rtt; selector по fw, probe, result и времени; фактическую первую и последнюю затронутую строку; требуемое действие; 5130 и исправляющий commit; каналы уведомления и историю изменений.

Отдельный rollout receipt может публиковать датированные количества Connected по версиям. Он отвечает, движется ли парк. Erratum отвечает, что означает сохранённый результат. Полное обновление probes не исправляет старые копии; правильная маркировка архива не останавливает новые 5120-строки от ещё не обновившейся probe.

Коррекция должна путешествовать вместе с копией

Результаты Atlas попадают в локальные хранилища, dashboards, мониторинг и статьи. Поле fw может сохраниться в экспорте, а человеческая release note — нет. Поэтому quality decision должна быть доступна без аутентификации, иметь версию и соединяться с raw row автоматически.

RIPE NCC имеет узкую, но важную роль: он определяет публичную семантику поля и lineage программного обеспечения. Хост управляет установкой. Владелец measurement задаёт цель. Downstream-потребитель управляет своей копией. Erratum не отбирает их полномочия, а даёт общий документ о состоянии данных.

5130 уже проявил необходимую прозрачность, назвав ошибочное и сохранив RTT за границей дефекта. fw уже сохраняет происхождение. Осталось зафиксировать третий объект — решение о допустимом использовании — прежде чем данные переживут страницу, где оно было объявлено.

Источники