Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Warmer can't handle images with non linux/amd64 tags #741

Closed
awh opened this issue Sep 14, 2017 · 7 comments · Fixed by #1208
Closed

Warmer can't handle images with non linux/amd64 tags #741

awh opened this issue Sep 14, 2017 · 7 comments · Fixed by #1208

Comments

@awh
Copy link
Contributor

awh commented Sep 14, 2017

We have started seeing these errors for the nats image:

caller=warming.go:148 component=warmer err="requesting manifests: getting remote manifest: Get https://index.docker.io/v2/library/nats/manifests/1.0.2-windowsservercore: http: non-successful response (status=404 body=\"{\\\"errors\\\":[{\\\"code\\\":\\\"MANIFEST_UNKNOWN\\\",\\\"message\\\":\\\"manifest unknown\\\"}]}\\n\")"
caller=warming.go:148 component=warmer err="requesting manifests: getting remote manifest: Get https://index.docker.io/v2/library/nats/manifests/windowsservercore: http: non-successful response (status=404 body=\"{\\\"errors\\\":[{\\\"code\\\":\\\"MANIFEST_UNKNOWN\\\",\\\"message\\\":\\\"manifest unknown\\\"}]}\\n\")"
caller=warming.go:148 component=warmer err="requesting manifests: getting remote manifest: Get https://index.docker.io/v2/library/nats/manifests/1.0.2-nanoserver: http: non-successful response (status=404 body=\"{\\\"errors\\\":[{\\\"code\\\":\\\"MANIFEST_UNKNOWN\\\",\\\"message\\\":\\\"manifest unknown\\\"}]}\\n\")"
caller=warming.go:148 component=warmer err="requesting manifests: getting remote manifest: Get https://index.docker.io/v2/library/nats/manifests/nanoserver: http: non-successful response (status=404 body=\"{\\\"errors\\\":[{\\\"code\\\":\\\"MANIFEST_UNKNOWN\\\",\\\"message\\\":\\\"manifest unknown\\\"}]}\\n\")"

Trying to pull these tags manually gives a hint as to the problem:

$ sudo docker pull nats:nanoserver
[sudo] password for awh: 
nanoserver: Pulling from library/nats
no matching manifest for linux/amd64 in the manifest list entries

The consequence of this is quite serious - no tags are displayed at all for the nats image, not just the ones it can't understand.

@squaremo
Copy link
Member

no tags are displayed at all for the nats image, not just the ones it can't understand.

If we can't fetch a complete list of tags and metadata, we can't reliably say which order they should be in.
We could do better than we do now, though, if we recorded the full set whenever we managed to get new information.

@squaremo
Copy link
Member

nanoserver: Pulling from library/nats
no matching manifest for linux/amd64 in the manifest list entries

The warmer uses the registry API, which is just HTTP and doesn't account for os/arch. The 404s make me think the API has changed out from under us.

@squaremo
Copy link
Member

squaremo commented Oct 6, 2017

Possibly related to #778 -- maybe docker hub has stopped having schema1 manifests for certain images (in particular, those for os/arch other than Linux/amd64).

@squaremo
Copy link
Member

squaremo commented Mar 12, 2018

Update, after #851:

Some image repositories have images available for architectures other than amd64/Linux. We explicitly omit these from results, but our fetching logic means that we'll go looking for exactly the same image metadata next time around.

There are two problems:

  • Not getting metadata for certain tags means we can't have a result at all. We need to be able to assemble a result from just the relevant tags.
  • We persist in attempting to fetch the results again and again. Similarly to Back-off failed image metadata fetches #910, it would be good to store something saying "just ignore this tag from now on", so that we don't keep trying to fetch it.

Possibly we could fix both of these things by storing the individual manifest whatever it is, and filtering out the wrong arch/OS when assembling the whole response.

@squaremo
Copy link
Member

See also #853

@squaremo
Copy link
Member

squaremo commented Jul 6, 2018

Doh, closed by unfortunate wording.

@squaremo
Copy link
Member

More image repos are getting windows images (e.g., alpine, mongo), and people are running into this problem quite a lot :-( I'm giving this the top honour accorded to issues, "High user impact".

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants