Priority: 4 - Normal
Affects Version/s: None
Fix Version/s: 6.10.0
Resolving from a Virtual repository that contains repositories with exclude pattern that match the target artifact will fail after the first time getting rejected due to exclude pattern.
RepositoryServiceImpl:getResourceStreamHandle will throw an exception when the exclude pattern matches.
this ticket is child of RTFACT-15697, apparently this problem emerge on other package managers.
Steps to reproduce on docker quoted from RTFACT-15697
Currently, if you have an exclude pattern for an image/artifact in a local repo, and trying to pull from a virtual that aggregates the local repo, trying to resolve the artifact from the virtual will fail with a 404 due to the exclude pattern in the local repository. It will not continue to try resolving from other repositories aggregated in the virtual. To reproduce:
-create local docker repository, deploy busybox image to it
-create remote docker repository pointing to docker.io, and cache busybox
-add an exclude pattern for the local docker repo (**/**) so that pulling buxybox will fail
-create a virtual docker repository, aggregating the local and remote
-delete any local busybox layers with docker rmi -f docker rmi $(docker images -q)
-try pulling busybox from the virtual, and see that the pull fails at the local repository due to the exclude pattern, and doesn't continue searching through the remote:
docker pull mill.jfrog.team:12197/busybox
Using default tag: latest
latest: Pulling from busybox
90e01955edcd: Pulling fs layer
error pulling image configuration: unknown blob
2018-01-19 08:55:11,052 [http-nio-8081-exec-11] [ERROR] (o.j.r.d.v.r.h.DockerV2LocalRepoHandler:532) - Error calculating manifest digest: 'Unauthorized: The repository 'docker-local' rejected the artifact 'docker-local:nginx/latest/manifest.json' due to its include/exclude pattern settings.'
Artifactory should keep resolving artifacts even after being rejected by exclude pattern.