После обновления artifactory pro с 5.3.2 до 6.3.3 (full-db is oracle) возникли проблемы с извлечением образов докера.
2018-09-11 02:00:45,517 [http-nio-8081-exec-8] [ERROR] (o.a.r.c.e.GlobalExceptionMapper:48) - Binary provider has no content for '74a009afe517bd3dca2ab47ba937336008788dea'
org.jfrog.storage.binstore.exceptions.BinaryNotFoundException: Binary provider has no content for '74a009afe517bd3dca2ab47ba937336008788dea'
at org.jfrog.storage.binstore.providers.EmptyBinaryProvider.getStream(EmptyBinaryProvider.java:62)
2018-09-11 02:02:05,074 [http-nio-8081-exec-4] [ERROR] (o.j.r.d.v.r.h.DockerV2LocalRepoHandler:550) - Error reading manifest
java.lang.RuntimeException: Failed to retrieve resource docker-local:company/country/services/service-integration/1.0.0/manifest.json: Binary provider has no content for '4ef8eb9d8192a617dcfa24a0bef298e6d1b03215'
Посмотрите вниз на БД, и эти двоичные файлы не существуют. Пытался удалить их вручную, но есть внешний ключ, связанный с ошибкой (двоичные таблицы [PK: sha1] <-> узлы таблиц [FK: sha1]).
Проблемы:
- Невозможно вытащить или нажать и переопределить поврежденный образ докера
- артефакт не может очистить мусор из-за испорченного изображения (пытается найти и удалить двоичные файлы, которых не существует)
- oracle не может удалить запись из таблицы узлов, поскольку считает, что в таблице узлов все еще есть дочерние записи
Уже просматривал существующую тему Повреждены изображения докера в artifactory pro и есть еще несколько вопросов:
- как удалить из локальной базы дерби
- Можно ли не делать ручную работу каждый день:)