18+
реклама
18+
Бургер менюБургер меню

Аня Морозова – Общий ритм (страница 3)

18

Павел приехал к вечеру. Увидел отключённую стойку, ничего не сказал, открыл свой ноутбук и начал проверять конфигурацию. Работали молча. Иногда он задавал короткий технический вопрос, Ася отвечала. Ксюша написала в мессенджере: «Скажи, если нужна помощь с коммуникацией для клиники». Ася ответила: «Пока не нужно. Сначала факты».

К семи часам стало ясно: часть расхождения объяснялась перезапуском оборудования. Система обновляла время при каждом перезапуске, но не всегда синхронизировалась с сервером клиники. Настенный монитор работал от внутренних часов и не сверялся ни с чем. Ноутбук Аси — от системного времени, которое могло отставать при выходе из спящего режима. Три независимых источника, ни один из которых не был эталоном.

Этим объяснялась часть расхождений. Но не все.

В одном случае разница составила шестнадцать секунд — между двумя событиями, записанными одним и тем же устройством. Перезапуска в этот момент не было. Ася выделила это место в журнале и написала: «Причина неизвестна. Требуется отдельная проверка».

Кирилл зашёл в ординаторскую, когда смена уже заканчивалась. Он не сел, встал у двери.

— Что нашла?

— Перезапуск объясняет часть. Но не всё. Есть расхождение, которое я пока не могу объяснить.

— Сколько времени нужно?

— Не знаю. День‑два на проверку. Может, больше.

Кирилл кивнул. Он не стал говорить, что это плохо или что проект под угрозой. Он спросил:

— Ты записала всё, что нужно для проверки?

— Да. Журналы, логи, показания монитора. Всё сохранено.

— Тогда поехали. Тебе нужно уехать отсюда, а не сидеть до утра.

Ася хотела возразить, но поняла, что он прав. Глаза уже слипались, а таблица расхождений начала двоиться.

На улице лило. Не дождь — стена воды. Ася вышла из клиники под козырёк, раскрыла зонт, и ветер тут же вывернул его. Кирилл остановился рядом, поднял воротник.

— Транспорт встал, — сказал он. — Я подброшу до метро.

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

Ехали медленно. Дворники едва справлялись, дороги блестели, фонари отражались в лужах. Ася смотрела в окно. Кирилл вёл машину сосредоточенно, без музыки, без разговоров. Молчание не требовало объяснений. После восьми часов с журналами и таблицами Ася не хотела говорить. И он не просил.

У светофора Кирилл остановился у киоска.

— Подождёшь минуту?

Он вышел и вернулся с двумя сэндвичами в прозрачной плёнке. Положил один Асе на колени.

— Ешь. Ты с обеда ничего не ела.

Ася хотела сказать, что не голодна, но развернула плёнку и откусила. Хлеб был мягкий, ветчина тёплая. Она поняла, что голодна. Очень.

Кирилл ел за рулём, придерживая его одной рукой. У метро он остановился, но мотор не заглушил.

— Мы не знаем, что именно произошло, — сказала Ася.

— Пока не знаем, — ответил Кирилл. — Это не значит, что мы не узнаем.

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

— У тебя есть мой рабочий номер, — сказала она. — Но если что‑то по журналам — лучше писать на личный.

Она продиктовала номер. Кирилл ввёл его в телефон и кивнул. Потом набрал номер — из сумки Аси донёсся короткий сигнал.

— Теперь у тебя есть мой, — сказал он.

— Спасибо за сэндвич, — сказала она.

— Спасибо за журналы, — ответил он.

Она вышла из машины и пошла к метро, раскрыв зонт.

Дома Ася скинула мокрую куртку, поставила чайник и села на кухне с раскрытым блокнотом. Она дописывала рабочие заметки, когда из сумки донёсся сигнал. Ася достала телефон: сообщение пришло с незнакомого номера — «Ты добралась?» Она сохранила номер как «Кирилл» и ответила: «Да, добралась. Спасибо».

Ответ пришёл через минуту: «Хорошо».

Ася убрала телефон и закрыла глаза. Чайник щёлкнул. Сегодня Кирилл не назвал её пчёлкой. Ася поймала себя на том, что заметила это.

Перед сном она раскрыла блокнот и записала: «Расхождение 16 сек — причина неизвестна. Перезапуск объясняет часть. Проверить синхронизацию с сервером клиники. Сэндвич был хорошим».

Последнюю строку она перечитала, хотела зачеркнуть. Не стала.

Глава 4. Несовпадение

Они встретились в ординаторской в девять утра. Кирилл принёс бумажный журнал отделения, Ася — ноутбук с логами и распечатки с временными метками. На столе легли три ряда данных: система, настенный монитор, ручные записи медсестёр.

Начали с инцидента в палате № 7. Ася выстроила последовательность: сигнал в логах — 14:32:07, отображение на панели — 14:32:21, запись медсестры в журнале — 14:32:18. Кирилл ткнул пальцем в бумажную запись.

— Медсестра записала 14:32:18, — сказал он. — Она смотрела на настенные часы.

— Которые показывали 14:32:21, — ответила Ася.

— Получается, она записала на три секунды раньше, чем часы показывали. Человеческая погрешность.

— Или часы в коридоре отставали от часов у монитора, — предположила Ася.

Кирилл посмотрел на неё.

— Два разных часа в одном отделении?

— Бывало и хуже, — сказала Ася.

Они двинулись назад по дням. Ася открывала лог за логом, Кирилл сверял с записями смены. Часть расхождений ложилась на перезапуск: после каждого обновления система брала время с сервера клиники, но сервер не всегда отвечал мгновенно. Иногда задержка составляла секунды, иногда — больше. Настенный монитор жил своей жизнью, отставая на пять-восемь секунд от сервера. Ноутбук Аси — на две-три секунды, в зависимости от спящего режима.

К обеду они разобрали первый и второй дни. Семнадцать случаев. Двенадцать объяснялись перезапуском и рассинхронизацией. Пять — нет.

Ася выделила пять необъяснённых случаев в отдельную таблицу. Все пять — после перезапуска, когда система уже должна была взять верное время. Расхождение — от шести до шестнадцати секунд. Ни закономерности, ни повтора.

— Кто имеет доступ к серверу? — спросил Кирилл.

— Из нашей команды, я и Павел, — ответила Ася. — Из клиники, безопасник и техподдержка. Доступ подрядчика ограничен диагностическим режимом.

— Проверь, кто заходил в эти моменты.

— Проверю. Но логи доступа тоже с того же сервера. Если время на сервере «гуляет», логи доступа тоже ненадёжны.

Кирилл откинулся на стуле. Не раздражённо — задумчиво. Он привык работать с фактами, а здесь факты зависели от инструмента, который сам был под вопросом.

— Давай пока не строить гипотез, — сказал он. — Запишем то, что подтверждено. Остальное — отдельной строкой.

Ася кивнула и написала в отчёте: «Подтверждённые расхождения: 12 из 17. Причина: рассинхронизация часов при перезапуске. Неподтверждённые: 5 из 17. Причина: требуется отдельная проверка. Доступ к серверу: проверить журнал входов».

Письмо пришло в два часа дня. Ася увидела его на рабочем адресе, когда вернулась к ноутбуку после перерыва. Отправитель — безымянный, адрес зарегистрирован в иностранном домене. Тема: «Важно». Тело сообщения — одна строка:

«Не списывайте все расхождения на перезапуски».

Вложение было файлом без расширения. В письме не было ни имени, ни подписи. Ася не стала строить догадок об авторе.

Она не стала открывать вложение, сохранила письмо, сделала скриншот и позвонила безопаснику клиники. Тот попросил переслать заголовки и не открывать вложение до проверки. Ася ответила согласием.

Через пятнадцать минут она написала Кириллу: «Нужно поговорить. Не по телефону».

Он ответил через три минуты: «В пять, в ординаторской».

Ася показала ему письмо на экране. Кирилл прочитал дважды.