Антон Абрамов – Фантомная отметка (страница 9)
— Должен?
— Должен, — повторил он. — А сейчас, как видите, не живёт.
Таисия опустила взгляд на хвост пакета. Секунды шли всё те же: 03:14:18, 03:14:19, 03:14:20. Старый формат высоты, старый транспортный заголовок, служебный мост между legacy-контуром и рабочей картой. Это уже не было похоже на случайный мусор, попавший в новый комплекс из плохо вычищенной папки. Мусор не открывает мост, не поднимает позывной из таблицы и не приходит по времени реального события.
— Покажите, кто открыл bridge_3, — сказала она.
Дамир раскрыл журнал задач и пошёл вверх по меткам.
— Не пользователь, — пробормотал он. — Сервисный демон. Вот запуск... вот условие... чёрт.
Он отодвинулся и дал ей место у клавиатуры. Таисия быстро увеличила строку. В условии запуска стоял блок, который в текущей документации она не помнила:
meteo_profile / compare_archive / threshold: 0.91
Ниже шла ссылка на архивный кластер и длинный цифровой идентификатор события. В конце — тот же ручной тег: VE-3.
— Вы это видели раньше? — спросила она.
— Нет. В моей сборке этого демона нет.
— Значит, он живёт в наследуемом слое.
— И почему-то допущен до моста.
Дамир перешёл в просмотр контура. На схеме, где обычный пользователь видел только стрелки и блоки, он читал логику так же быстро, как другой читает карту метро.
— Смотрите, — сказал он. — У нас есть старый архивный компаратор. Он берёт погодный вектор, сверяет его с набором эталонных случаев и, если совпадение выше порога, поднимает контрольный след из архива в диагностическое зеркало. Это можно объяснить. На стендах так иногда делают, чтобы сравнить текущую ночь с опасными сценариями прошлого. Но дальше мост не должен выпускать этот след в живую идентификацию. А он выпустил.
— Почему?
— Потому что кто-то позже сшил зеркало с таблицей распознавания ближе, чем надо. Или не отрезал старую привязку, когда тянул всё это в новую архитектуру. Нужно смотреть журнал изменений.
— Сначала скажите мне другое. Совпадение с чем именно он ловил?
Дамир открыл архивный кластер. На экране появилась карточка старого события: погодный профиль, диапазон влажности, угол ветра, аэрозоль, фазовый шум по приёмным путям, дата, время. Поля были неполные, часть значений тянулась из древнего формата, но дата читалась чётко.
14.10 / 03:14
У Таисии не дрогнули руки. Она уже миновала точку, где можно было позволить себе внутренний удар. Сейчас ей нужно было мыслить.
— Дайте наложение на текущую ночь.
Дамир вывел график. Две кривые легли рядом: влажность, скорость ветра, соляная взвесь, колебание по третьему приёмному пути, угол захода с воды. Разброс был, но не там, где хотелось бы для спокойствия. Большая часть профиля совпадала слишком плотно.
— Девяносто четыре процента, — сказал он. — Вот почему компаратор проснулся.
— Он не проснулся сам. Его кто-то оставил ждать такой погоды.
Дамир посмотрел на неё и ничего не возразил.
Дверь открылась. На пороге появилась Инга. Она вошла без спешки, с тонкой серой папкой в руках. Видно было, что сюда она пришла не по любопытству.
— Нашли подпись? — спросила она.
— VE-3, — ответила Таисия. — Вам знакомо?
Инга положила папку на стол, раскрыла её на середине и подвинула к ним распечатку старого журнала.
— Знакомо. Это Ермолова.
В комнате стало тише, хотя вентиляция гудела так же.
— Валентина Ермолова? — уточнил Дамир.
— Да. На старых модулях она вела три контрольных контура. Первый для сухой погоды, второй для сложной воды, третий для редких сочетаний, когда система начинала врать красиво. Подписывала их по своим инициалам. VE-1, VE-2, VE-3.
Таисия посмотрела в журнал. Почерк был чёткий, узкий, без украшений. В графе комментария стояло: "VE-3 / не допускать в рабочую карту, только сравнение".
— Откуда у вас это? — спросила Таисия.
— Из старого бумажного журнала смены. Его не любят поднимать, потому что он не влезает в красивые версии истории. Но бумага полезна тем, что сама себя не переписывает.
Инга говорила спокойно. Только на фамилии Ермоловой в её голосе появилась едва заметная жёсткость, как у человека, который слишком давно живёт рядом с чужими решениями и слишком редко видит, чтобы их называли прямо.
— Почему этот контур вообще оставили в системе? — спросил Дамир.
— Потому что Валентина никому не верила на слово, — ответила Инга. — Особенно фильтрам. После той ночи она добилась, чтобы опасные погодные сочетания сравнивались с архивом автоматически. Формально это называлось дополнительной диагностикой. По факту она оставила в комплексе память, которую нельзя выключить одной фразой на разборе.
Таисия подняла взгляд.
— После той ночи? То есть VE-3 собрали уже после катастрофы?
— Да. Он не вёл тот борт. Он должен был предупреждать о повторении условий.
— Тогда почему система подняла саму трассу, а не просто тревогу?
— Потому что кто-то потом дотянул старый контур до нового интерфейса и не довёл работу до конца, — сказал Дамир. — Или довёл так, чтобы на бумаге всё выглядело чище.
Инга промолчала. Её молчание было красноречивее согласия.
Таисия вернулась к схеме. Теперь многое встало на место. Архивный пакет не пытался выдать себя за живую цель. Его поднимал сервисный компаратор, которому по правилам положено жить в диагностическом зеркале. Назвать позывной он смог только потому, что старая таблица распознавания ещё лежала в связке с мостом. Выбраться на общую карту след сумел потому, что кто-то когда-то не отсёк калибровку от оперативного слоя до конца. Это ещё не объясняло сам дефект в К-12. Но объясняло главное: фантом был не галлюцинацией системы и не капризом памяти. Это был тревожный след, оставленный инженером прошлого и выпущенный наружу совпадением погоды.
— Ермолова умерла три года назад, — сказала Инга, будто читая вопрос, которого никто не задал. — После её смерти старые контуры начали чистить пакетами. Часть вынесли, часть спрятали. VE-3, видимо, не убрали до конца.
— Или не захотели убирать, — сказала Таисия.
— Такое тоже бывает.
Дамир открыл журнал изменений, привязанный к bridge_3.
— Вот интереснее, — сказал он. — Контур поднимали при переносе в новую архитектуру не целиком, а кусками. Сначала компаратор, потом зеркало, потом... вот это совсем нехорошо.
— Что там?
— Таблица старых позывных была прицеплена как вспомогательная. Без этого архивная трасса не получила бы имя. Кто-то оставил старый словарь в контуре распознавания.
— Когда?
Он пролистал вниз.
— Пять лет назад. Подпись служебная, фамилии нет. Только допуск группы.
Пять лет назад. Таисия невольно подняла глаза на Ингу. Та поняла без слов.
— Это уже не время Ермоловой, — сказала она. — Она тогда болела и на ночных сменах почти не стояла.
— Значит, её контур использовали после неё, — сказала Таисия.
— Или за её спиной, — добавил Дамир.
Он быстро свёл ещё одно окно и вывел сравнение погодных профилей в более грубой шкале. Линии совпали ещё отчётливее. Текущая ночь не копировала прежнюю до десятой доли, но ключевой набор для опасного сектора сходился: влажность, соль, угол сноса, провал по третьему пути, характер отражения от воды перед береговым поворотом.
— Девяносто четыре — это средний коэффициент, — сказал он. — По К-12 совпадение выше. Вот почему мост открылся именно там.
— Значит, фантом не случайный, — сказала Таисия.
— Нет. Он сработал как контрольный след на повторение условий.