Affects Version/s: 6.20.1, 6.21.1, 6.22.0, 7.9.0
Fix Version/s: 7.12.5
Problem description: Virtual Docker repository including the smart and regular remote repositories, along with the resolve Docker Tags By Timestamp setting does not resolve artifacts as expected and only tries to get the request from the smart remote repository and when it gets an access/permission error from the smart remote, it fails to check further in the included repo list. This happens when the smart remote repository does not have anonymous permissions.
What is the expected behavior? Should be able to resolve artifacts from the regular remote as well when it gets error response from locals & smart remotes
Steps to reproduce:
- Create Docker remote repository proxying docker hub
- Create Permission target with an anonymous user having required privileges and include the Docker remote repository
- Create Docker smart remote repository pointing to a remote Artifactory instance
- Create Permission target with an anonymous user not having any privileges and include the Docker smart remote repository
- Create a Virtual Docker repo including both Docker remote and Docker smart remote (created in step 1 and step 2)
- Enable the Resolve Docker Tags By Timestamp setting under the Virtual repo Advance page
- Try to pull an image through the Docker virtual repo that would be available in Docker remote repo (proxying docker hub) and not in Docker smart repo and observe unauthorized error from the client and missing manifest error from the Docker smart remote repo in the artifactory.log
When the Resolve Docker Tags By Timestamp is set
2020-10-06 13:15:10,060 [http-nio-8081-exec-1] [TRACE] (o.a.a.d.r.v.DockerV2RemoteRepoHandler:251) - Fetching manifest for docker-smart-repo2:'busybox' 'latest'
2020-10-06 13:15:10,060 [http-nio-8081-exec-1] [DEBUG] (o.a.a.d.r.v.DockerV2RemoteRepoHandler:388) - Fetching docker tag manifest for docker-smart-repo2:busybox:latest
2020-10-06 13:15:10,061 [http-nio-8081-exec-1] [ERROR] (o.a.a.d.r.v.DockerV2RemoteRepoHandler:448) - Missing Manifest from docker-smart-repo2 'v2/busybox/manifests/latest' not found at docker-smart-repo2:busybox/latest/list.manifest.json
When the Resolve Docker Tags by Timestamp is unchecked
2020-10-06 13:46:44,755 [http-nio-8081-exec-3] [INFO ] (o.a.a.d.r.v.r.v.DockerV2VirtualRepoHandler:117) - Fetching docker manifest for repo 'busybox' and tag 'latest'
2020-10-06 13:46:44,756 [http-nio-8081-exec-3] [TRACE] (o.a.a.d.r.v.DockerV2RemoteRepoHandler:251) - Fetching manifest for docker-remote:'library/busybox' 'latest'
2020-10-06 13:46:44,757 [http-nio-8081-exec-3] [DEBUG] (o.a.a.d.r.v.DockerV2RemoteRepoHandler:388) - Fetching docker tag manifest for docker-remote:library/busybox:latest
2020-10-06 13:46:44,765 [http-nio-8081-exec-3] [DEBUG] (o.a.a.d.r.v.DockerV2RemoteRepoHandler:423) - Using manifest from docker-remote-cache/library/busybox/latest/list.manifest.json