Uploaded image for project: 'Project Quay'
  1. Project Quay
  2. PROJQUAY-941

Quay push image was failed when backend storage is Openstack-Swift

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Critical
    • 2020.08.20
    • quay-v3.4.0
    • quay
    • 0

    Description

      Description:

      This is an issue found when configuring Quay's backend storage as Openstack Swift, push image was failed, checked Quay POD Logs, get error message "TypeError: '>' not supported between instances of 'NoneType' and 'int' "

      docker push demo-quayecosystem-quay-quay-enterprise.apps.quay-285.0806-9n1.qe.rhcloud.com/quay/demo
      The push refers to repository [demo-quayecosystem-quay-quay-enterprise.apps.quay-285.0806-9n1.qe.rhcloud.com/quay/demo]
      ac078d8f08c6: Pushing [==================================================>]  3.584kB
      6d196faff4ee: Pushing [==================================================>]  4.096kB
      ed39597d1556: Pushing [==================================================>]  3.072kB
      ff73b8119c50: Pushing [==================================================>]  63.27MB/63.27MB
      d0f104dc0a1f: Pushing [==================================================>]  69.22MB/69.22MB
      received unexpected HTTP status: 500 Internal Server Error
      

      Quay Image: quay.io/projectquay/quay:50ba6130

      Steps:

      1. Deploy Quay with backend storage as Openstack Swift
      2. Create new image repository
      3. Push image to new image repository

      Expected Results:

      Push image should complete successfully.

      Actual Results:

      Push image was failed with internal 500 error 

       

      Quay POD logs:
      gunicorn-registry stdout | 2020-08-07 02:51:08,766 [326] [ERROR] [gunicorn.error] Error handling request /v2/quay/demo/blobs/uploads/5d7905f4-2c43-4eef-9942-69bee910b4dd
      gunicorn-registry stdout | Traceback (most recent call last):
      gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base_async.py", line 55, in handle
      gunicorn-registry stdout | self.handle_request(listener_name, req, client, addr)
      gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/ggevent.py", line 143, in handle_request
      gunicorn-registry stdout | super().handle_request(listener_name, req, sock, addr)
      gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base_async.py", line 106, in handle_request
      gunicorn-registry stdout | respiter = self.wsgi(environ, resp.start_response)
      gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2463, in _call_
      gunicorn-registry stdout | return self.wsgi_app(environ, start_response)
      gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/werkzeug/middleware/proxy_fix.py", line 232, in _call_
      gunicorn-registry stdout | return self.app(environ, start_response)
      gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2449, in wsgi_app
      gunicorn-registry stdout | response = self.handle_exception(e)
      .....
      gunicorn-registry stdout | return func(*args, **kwargs)
      gunicorn-registry stdout | File "/quay-registry/endpoints/v2/blob.py", line 319, in upload_chunk
      gunicorn-registry stdout | _upload_chunk(uploader)
      gunicorn-registry stdout | File "/quay-registry/endpoints/v2/blob.py", line 485, in _upload_chunk
      gunicorn-registry stdout | blob_uploader.upload_chunk(app.config, input_fp, start_offset, length)
      gunicorn-registry stdout | File "/quay-registry/data/registry_model/blobuploader.py", line 232, in upload_chunk
      gunicorn-registry stdout | content_type=BLOB_CONTENT_TYPE,
      gunicorn-registry stdout | File "/quay-registry/storage/distributedstorage.py", line 27, in wrapper
      gunicorn-registry stdout | return storage_func(*args, **kwargs)
      gunicorn-registry stdout | File "/quay-registry/storage/swift.py", line 374, in stream_upload_chunk
      gunicorn-registry stdout | uuid, offset, length, in_fp, storage_metadata, content_type
      gunicorn-registry stdout | File "/quay-registry/storage/swift.py", line 412, in _stream_upload_segment
      gunicorn-registry stdout | if self._retry_count > 0:
      gunicorn-registry stdout | TypeError: '>' not supported between instances of 'NoneType' and 'int'
      gunicorn-registry stdout | 2020-08-07 02:51:08,767 [326] [INFO] [gunicorn.access] - - [07/Aug/2020:02:51:08 +0000] "PATCH /v2/quay/demo/blobs/uploads/5d7905f4-2c43-4eef-9942-69bee910b4dd HTTP/1.1" 500 0 "" ""
       

       

      Attachments

        Activity

          People

            sleesinc Kenny Lee Sin Cheong
            lzha1981 luffy zhang
            luffy zhang luffy zhang
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: