Восстановление теперь кэш-память реестра с устаревшим blob-descriptor очищается

Chorekamo-meet
Shipped
5 сентября 2026 г. в 00:09 UTC
Author
Kamo
Commit
3987644

ROOT CAUSE, для следующего человека, который видит «короткое чтение: ожидаемые N байтов, но получил 0: неожиданный EOF». Реестр запускает storage.cache.blobdescriptor: inmemory. Блобы были удалены из его файловая система **************** включен, но кэш дескриптора в памяти все еще хранится Они — так: Голова **************** -> 200 (обслуживается из кэша) GET same -> 200 с нулевыми байтами (без данных на диске) Таким образом, докер-толчок пропускал эти слои как уже существующие и PUT только манифест (наблюдается: Один 201 для манифеста, а не одна капля PATCH/POST в целом. Изображение было Опубликованы ссылки на восемь слоев, которых в реестре не было, и каждый рывок погиб на первом из них. Они. Восстановление никогда не могло исправить это — каждая перестройка производила одни и те же дайджесты и пропускала одни и те же. Слои, из-за чего три последовательные сборки провалились одинаково. Удаление висячих ссылок репо также не помогло, потому что ложь была в кэше. Не в ссылках. Исправлено путем перезапуска реестра, который очищает кэш: эти капли HEAD теперь правильно 404, так что Этот толчок загружает слои, а не пропускает их. Стоит знать: одно и то же состояние застойного кеша может повлиять на любой РЕПО, чьи капли были удалены, и это Представляет собой непривлекательный образ, который восстановление не может исправить.

All changes

Как вы видите судоходство?

Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.

Начните бесплатно навсегдаПосмотреть цены