Uploaded image for project: 'Artifactory Binary Repository'
  1. Artifactory Binary Repository
  2. RTFACT-20814

containerd push is not working

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Done
    • Resolution: Done
    • Affects Version/s: 6.17.0
    • Fix Version/s: 7.5.0, 6.20.0
    • Component/s: Docker
    • Labels:
    • Severity:
      Medium

      Description

      The culprit in the push is that the Docker payload/content is being sent with a PUT request similar to the docker client < 1.8 versions. Modern docker client version, actually use the PATCH method for BLOB uploads

      Steps to reproduce:

       ctr images tag 192.168.56.1:8080/docker/alpine:latest 192.168.56.1:8080/docker/alpine:1.1
      192.168.56.1:8080/docker/alpine:1.1
      
      ctr images push 192.168.56.1:8080/docker/alpine:latest 192.168.56.1:8080/docker/alpine:1.1
      index-sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a: waiting        |--------------------------------------|
      elapsed: 0.1 s                                                                 total:   0.0 B (0.0 B/s)
      ctr: content digest sha256:29a82d50bdb8dd7814009852c1773fb9bb300d2f655bd1cd9e764e7bb1412be3: not found
      

      Capturing the HTTP traffic with wireshark shows that apparently the ctr client fails on on the below set of requests and responses (scroll down to see the last response which actually fails the client):

      
      HEAD /v2/docker/mysql/blobs/sha256:27a27ac83f745b34745a1e0c6d8518c675004ec63ac8dd72ace0a2be583f33bb HTTP/1.1
      Host: 192.168.56.1:8080
      User-Agent: containerd/v1.3.0-rc.2
      Accept: application/vnd.docker.image.rootfs.diff.tar.gzip, *
      Authorization: Bearer AKCp5e2qZwZhP88EhaTs65CgijmJvohVo98cpaysF9nf3x634jqteKpX5Y6qhj6yViKxX1utn
      
      HTTP/1.1 404 
      Server: Artifactory/development
      X-Artifactory-Id: 9fb42902b7afcfa0:4d7b3f92:16e305ed8fe:-8000
      Docker-Distribution-Api-Version: registry/2.0
      Content-Type: application/json
      Content-Length: 157
      Date: Sun, 03 Nov 2019 09:41:07 GMT
      
      PUT /v2/docker-local/mysql/blobs/uploads/bdce582b-8fb3-47fc-98cf-6556fb324ebe?digest=sha256%3Ac8ee894bd2bd30f1c5758baf1c4cf2bd49ff7161b29ae404a8562b523fc3f642 HTTP/1.1
      Host: 192.168.56.1:8080
      User-Agent: containerd/v1.3.0-rc.2
      Content-Length: 7019
      Authorization: Bearer AKCp5e2qZwZhP88EhaTs65CgijmJvohVo98cpaysF9nf3x634jqteKpX5Y6qhj6yViKxX1utn
      Accept-Encoding: gzip
      
      HTTP/1.1 404 
      Server: Artifactory/development
      X-Artifactory-Id: 9fb42902b7afcfa0:4d7b3f92:16e305ed8fe:-8000
      Docker-Distribution-Api-Version: registry/2.0
      Content-Type: application/json
      Content-Length: 157
      Date: Sun, 03 Nov 2019 09:41:07 GMT
      
      {"errors":[{"code":"BLOB_UNKNOWN","message":"blob unknown to registry","detail":{"blobSum":"sha256:c8ee894bd2bd30f1c5758baf1c4cf2bd49ff7161b29ae404a8562b523f
      
      • There is a case that apparently can work if the version manifest already exists

        Attachments

          Issue Links

            Activity

                People

                Assignee:
                andreik Andrei Komarov
                Reporter:
                andreik Andrei Komarov
                Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved: