Мы исправили баг в коде, который выполняется при сбросе кэша после выката. Выкатили исправление — баг воспроизвёлся в точности. Исправление было верным. Просто его выполнил не тот код.
Это двадцать первая часть цикла «Кэш страниц без MISS».
Что произошло
Выкат копирует файлы по одному. Порядок определяется утилитой копирования, а не логикой приложения. В журнале выката:
| Время | Файл |
|---|---|
| 10:48:41 | манифест сборки фронта |
| 10:49:08 | исправленный PHP-файл обходчика |
Двадцать семь секунд между ними. Детектор выката (двадцатая часть) увидел новый манифест и запустил сброс и прогрев — старым кодом обходчика, потому что новый ещё не приехал.
Вывод
Правку в пути сброса нельзя проверить тем же выкатом, который её привёз. Тот выкат исполнит прежняя версия кода.
Проверять двумя способами:
- следующим выкатом — любым, хоть с изменением одного комментария в исходниках фронта;
- руками — вызвать сигнал сброса из консоли WordPress:
do_action('cache_purged'). Это занимает 0,03–0,07 с и запускает ровно тот путь, что и выкат.
А можно ли упорядочить копирование
Можно копировать манифест последним — отдельным шагом после остальных файлов. Тогда детектор срабатывает, когда весь код уже на месте. Это правильнее, но требует правки пайплайна выката на каждом сайте; пока мы проверяем вторым способом.
Исправление не сработало после выката?
Пришлите описание — проверю, не выполнил ли его старый код.
// загружаю комментарии…